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. |
| 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 INITIAL → x 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. |
Pagine correlate#
- Come funziona il cleaner — la scheda, l'interruttore principale e la release di destinazione.
- Chat — dove Pulisci questo task esegue il cleaner per una singola attività.