MakionDocs ← makion.dev

Reference delle regole del cleaner

Questo è il catalogo completo delle 45 regole che il cleaner ABAP può applicare. Ogni regola è elencata con il suo valore predefinito (Attivo o Disattivo) e cosa fa. Le tabelle sono raggruppate per categoria, corrispondendo all'elenco Regole nella scheda ABAP cleaner.

Ogni regola preserva il comportamento — cambia la forma del codice, mai cosa fa. Il cleaner lavora in una pipeline fissa: Lex → esegui le regole abilitate in un ordine fisso → riemetti. Ogni regola è attivabile singolarmente e configurabile tramite il profilo del progetto; senza un profilo, si applica il valore predefinito qui sotto.

Cinque regole sono Disattivate per impostazione predefinita: chain_split, concatenate_to_template, describe_lines, identifier_case, align_assignments. Tutto il resto è attivo per impostazione predefinita.

Alcune regole Modernize richiedono una release ABAP minima e non scatteranno al di sotto di essa — imposta la Release ABAP di destinazione nella scheda del cleaner. Vedi Come funziona il cleaner.

Casing#

Regola Predefinito Cosa fa
keyword_case Attivo Normalizza le parole chiave ABAP in minuscolo (o maiuscolo).
identifier_case Disattivo Normalizza gli identificatori non parole chiave in minuscolo (o maiuscolo).

Layout#

Regola Predefinito Cosa fa
pragma_position Attivo Sposta i pragma a fine riga prima del . / ,; sistema quelli fuori posto.
indent Attivo Reindenta le istruzioni per profondità di blocco (solo spazi iniziali).

Spacing#

Regola Predefinito Cosa fa
spacing_operators Attivo Esattamente uno spazio attorno agli operatori binari già spaziati.
space_before_period Attivo Rimuove gli spazi prima di un . di chiusura sulla stessa riga.
spacing_commas_parens Attivo Uno spazio dopo le virgole separatrici, nessuno prima; sistema le parentesi spaziate.
space_around_text_literal Attivo Aggiunge gli spazi mancanti attorno ai letterali '…' / `…`.
closing_brackets_position Attivo Sposta una riga che contiene solo ) o ] alla fine della riga precedente.

Alignment#

Regola Predefinito Cosa fa
align_declarations Attivo Allinea le colonne TYPE / LIKE e VALUE nelle catene e nelle sequenze di dichiarazioni.
align_assignments Disattivo Allinea l'= di assegnamenti semplici consecutivi.
align_perform Attivo Allinea i blocchi TABLES / USING / CHANGING delle chiamate PERFORM su più righe.
align_clear_free Attivo Allinea gli operandi dopo CLEAR: / FREE:, i componenti SORT…BY e le classi di eccezione CATCH.
align_aliases Attivo Allinea la colonna FOR di dichiarazioni ALIASES consecutive.
align_parameters Attivo Allinea l'= dei parametri uno per riga dentro parentesi di chiamata / costruttore su più righe.

Comments#

Regola Predefinito Cosa fa
comment_type Attivo Converte i commenti * a riga intera in commenti "; il codice commentato e le cornici vengono mantenuti.
comment_normalize Attivo Esattamente uno spazio dopo i marcatori di commento " e *.

Whitespace#

Regola Predefinito Cosa fa
condense_blank_lines Attivo Comprime le sequenze di righe vuote (default max 1) e rimuove gli spazi finali.
final_newline Attivo Garantisce che il file termini con esattamente una nuova riga.

Modernize#

Regole che riscrivono l'ABAP più vecchio in equivalenti moderni. Dove una regola necessita di una release ABAP minima, è indicato; la riscrittura scatta solo quando la tua Release ABAP di destinazione è abbastanza alta.

Regola Predefinito Cosa fa
equals_sign_chain Attivo a = b = c = 1. → un assegnamento per riga.
comparison_operators Attivo EQ / NE / LT / LE / GT / GE= <> < <= > >= nelle espressioni logiche.
not_is Attivo NOT x IS INITIALx IS NOT INITIAL.
calculation_assignment Attivo x = x + n.x += n. (anche - * /; richiede ≥ 7.54).
move_to_assignment Attivo MOVE src TO tgt.tgt = src. (solo MOVE semplice).
create_data_to_new Attivo CREATE DATA dref TYPE t.dref = NEW t( ). (≥ 7.40).
create_object_to_new Attivo CREATE OBJECT ref TYPE cls.ref = NEW cls( … ). (≥ 7.40).
call_method_functional Attivo CALL METHOD obj->m.obj->m( … ). (≥ 7.40).
raise_type_to_new Attivo RAISE EXCEPTION TYPE cls.RAISE EXCEPTION NEW cls( … ). (≥ 7.52).
receiving_keyword Attivo meth( … RECEIVING r = tgt ).tgt = meth( … ).
omit_exporting Attivo Elimina EXPORTING nelle chiamate funzionali che non hanno IMPORTING / CHANGING / RECEIVING / EXCEPTIONS.
concatenate_to_template Disattivo CONCATENATE a b INTO t RESPECTING BLANKS.t = |{ a }{ b }|. (≥ 7.40).
assert_equals_subrc Attivo assert_equals( act = sy-subrc exp = n )assert_subrc( … ).
assert_equals_boolean Attivo assert_equals( … exp = abap_true/false )assert_true / assert_false( … ).
arithmetic_compound Attivo ADD n TO x.x += n. (≥ 7.54).
assert_parameter_order Attivo Riordina gli argomenti cl_abap_unit_assert: prima l'atteso, poi l'effettivo.
condense_to_function Attivo CONDENSE x.x = condense( … ). (≥ 7.02).
translate_to_case Attivo TRANSLATE x TO UPPER/LOWER CASE.x = to_upper/to_lower( x ). (≥ 7.40).
describe_lines Disattivo DESCRIBE TABLE itab LINES n.n = lines( itab ). (≥ 7.02).
pseudo_comment_to_pragma Attivo Pseudo commenti "#EC obsoleti → ##PRAGMA (≥ 7.02).

Readability#

Regola Predefinito Cosa fa
empty_commands Attivo Rimuove le istruzioni fatte solo di punteggiatura (un solitario . : ,); i commenti vengono mantenuti.
chain_split Disattivo Divide una catena DATA: in un'istruzione per membro; le catene BEGIN OF / INCLUDE restano intatte.
chain_of_one Attivo DATA: x TYPE i.DATA x TYPE i. (elimina i due punti quando una catena ha un solo membro).
one_command_per_line Attivo Mette le istruzioni che condividono una riga sulle proprie righe.

Declarations#

Regola Predefinito Cosa fa
implicit_type Attivo DATA lv_x(10).DATA lv_x(10) TYPE c LENGTH 10. (esplicita il tipo / la lunghezza implicita).
escape_char_parameters Attivo Aggiunge o rimuove il carattere di escape ! sui nomi dei parametri METHODS.