Cleaner-Regeln — Referenz
Dies ist der vollständige Katalog der 45 Regeln, die der ABAP-Cleaner anwenden kann. Jede Regel ist mit ihrem Standard (Ein oder Aus) und ihrer Wirkung aufgeführt. Die Tabellen sind nach Kategorie gruppiert, passend zur Regeln-Liste im Reiter ABAP-Cleaner.
Jede Regel ist verhaltenswahrend — sie ändert die Form des Codes, nie das, was er tut. Der Cleaner arbeitet in einer festen Pipeline: Lexen → die aktivierten Regeln in fester Reihenfolge ausführen → neu ausgeben. Jede Regel lässt sich einzeln über das Profil des Projekts ein-/ausschalten und konfigurieren; ohne Profil gilt der unten angegebene Standard.
Fünf Regeln sind standardmäßig Aus: chain_split, concatenate_to_template, describe_lines, identifier_case, align_assignments. Alles andere ist standardmäßig ein.
Einige Modernize-Regeln erfordern einen Mindest-ABAP-Release und greifen darunter nicht — legen Sie das Ziel-ABAP-Release im Cleaner-Reiter fest. Siehe So funktioniert der Cleaner.
Casing#
| Regel |
Standard |
Wirkung |
keyword_case |
Ein |
ABAP-Schlüsselwörter auf Klein- (oder Groß-)schreibung normalisieren. |
identifier_case |
Aus |
Nicht-Schlüsselwort-Bezeichner auf Klein- (oder Groß-)schreibung normalisieren. |
Layout#
| Regel |
Standard |
Wirkung |
pragma_position |
Ein |
Pragmas ans Zeilenende vor das . / , verschieben; falsch platzierte korrigieren. |
indent |
Ein |
Anweisungen nach Blocktiefe neu einrücken (nur führende Leerzeichen). |
Spacing#
| Regel |
Standard |
Wirkung |
spacing_operators |
Ein |
Genau ein Leerzeichen um bereits umschlossene binäre Operatoren. |
space_before_period |
Ein |
Leerzeichen vor einem abschließenden . in derselben Zeile entfernen. |
spacing_commas_parens |
Ein |
Ein Leerzeichen nach Trennkommas, keins davor; umschlossene Klammern aufräumen. |
space_around_text_literal |
Ein |
Fehlende Leerzeichen um '…' / `…`-Literale ergänzen. |
closing_brackets_position |
Ein |
Eine Zeile mit nur ) oder ] ans Ende der vorigen Zeile hochziehen. |
Alignment#
| Regel |
Standard |
Wirkung |
align_declarations |
Ein |
TYPE / LIKE- und VALUE-Spalten in Deklarationsketten und -folgen ausrichten. |
align_assignments |
Aus |
Das = aufeinanderfolgender einfacher Zuweisungen ausrichten. |
align_perform |
Ein |
TABLES / USING / CHANGING-Blöcke mehrzeiliger PERFORM-Aufrufe ausrichten. |
align_clear_free |
Ein |
Operanden nach CLEAR: / FREE:, SORT…BY-Komponenten und CATCH-Ausnahmeklassen ausrichten. |
align_aliases |
Ein |
Die FOR-Spalte aufeinanderfolgender ALIASES-Deklarationen ausrichten. |
align_parameters |
Ein |
Das = von Parametern (einer pro Zeile) in mehrzeiligen Aufruf-/Konstruktor-Klammern ausrichten. |
| Regel |
Standard |
Wirkung |
comment_type |
Ein |
Vollzeilige *-Kommentare in "-Kommentare umwandeln; auskommentierter Code und Rahmen bleiben erhalten. |
comment_normalize |
Ein |
Genau ein Leerzeichen nach den Kommentarmarken " und *. |
Whitespace#
| Regel |
Standard |
Wirkung |
condense_blank_lines |
Ein |
Folgen von Leerzeilen zusammenfassen (Standard max. 1) und abschließende Leerzeichen entfernen. |
final_newline |
Ein |
Sicherstellen, dass die Datei mit genau einem Zeilenumbruch endet. |
Modernize#
Regeln, die älteres ABAP in moderne Entsprechungen umschreiben. Wo eine Regel einen Mindest-ABAP-Release benötigt, ist er vermerkt; das Umschreiben greift nur, wenn Ihr Ziel-ABAP-Release hoch genug ist.
| Regel |
Standard |
Wirkung |
equals_sign_chain |
Ein |
a = b = c = 1. → eine Zuweisung pro Zeile. |
comparison_operators |
Ein |
EQ / NE / LT / LE / GT / GE → = <> < <= > >= in logischen Ausdrücken. |
not_is |
Ein |
NOT x IS INITIAL → x IS NOT INITIAL. |
calculation_assignment |
Ein |
x = x + n. → x += n. (auch - * /; benötigt ≥ 7.54). |
move_to_assignment |
Ein |
MOVE src TO tgt. → tgt = src. (nur einfaches MOVE). |
create_data_to_new |
Ein |
CREATE DATA dref TYPE t. → dref = NEW t( ). (≥ 7.40). |
create_object_to_new |
Ein |
CREATE OBJECT ref TYPE cls. → ref = NEW cls( … ). (≥ 7.40). |
call_method_functional |
Ein |
CALL METHOD obj->m. → obj->m( … ). (≥ 7.40). |
raise_type_to_new |
Ein |
RAISE EXCEPTION TYPE cls. → RAISE EXCEPTION NEW cls( … ). (≥ 7.52). |
receiving_keyword |
Ein |
meth( … RECEIVING r = tgt ). → tgt = meth( … ). |
omit_exporting |
Ein |
EXPORTING in funktionalen Aufrufen ohne IMPORTING / CHANGING / RECEIVING / EXCEPTIONS weglassen. |
concatenate_to_template |
Aus |
CONCATENATE a b INTO t RESPECTING BLANKS. → t = |{ a }{ b }|. (≥ 7.40). |
assert_equals_subrc |
Ein |
assert_equals( act = sy-subrc exp = n ) → assert_subrc( … ). |
assert_equals_boolean |
Ein |
assert_equals( … exp = abap_true/false ) → assert_true / assert_false( … ). |
arithmetic_compound |
Ein |
ADD n TO x. → x += n. (≥ 7.54). |
assert_parameter_order |
Ein |
cl_abap_unit_assert-Argumente umsortieren: Erwartung zuerst, dann Ist-Wert. |
condense_to_function |
Ein |
CONDENSE x. → x = condense( … ). (≥ 7.02). |
translate_to_case |
Ein |
TRANSLATE x TO UPPER/LOWER CASE. → x = to_upper/to_lower( x ). (≥ 7.40). |
describe_lines |
Aus |
DESCRIBE TABLE itab LINES n. → n = lines( itab ). (≥ 7.02). |
pseudo_comment_to_pragma |
Ein |
Veraltete "#EC-Pseudokommentare → ##PRAGMA (≥ 7.02). |
Readability#
| Regel |
Standard |
Wirkung |
empty_commands |
Ein |
Anweisungen entfernen, die nur aus Satzzeichen bestehen (ein einzelnes . : ,); Kommentare bleiben erhalten. |
chain_split |
Aus |
Eine DATA:-/Verkettung in eine Anweisung pro Element aufteilen; BEGIN OF / INCLUDE-Ketten bleiben unberührt. |
chain_of_one |
Ein |
DATA: x TYPE i. → DATA x TYPE i. (Doppelpunkt weglassen, wenn eine Kette ein Element hat). |
one_command_per_line |
Ein |
Anweisungen, die sich eine Zeile teilen, auf eigene Zeilen setzen. |
Declarations#
| Regel |
Standard |
Wirkung |
implicit_type |
Ein |
DATA lv_x(10). → DATA lv_x(10) TYPE c LENGTH 10. (den impliziten Typ / die Länge ausschreiben). |
escape_char_parameters |
Ein |
Das Escape-Zeichen ! an METHODS-Parameternamen hinzufügen oder entfernen. |
Verwandte Seiten#
- So funktioniert der Cleaner — der Reiter, der Hauptschalter und das Ziel-Release.
- Chat — wo Diese Aufgabe bereinigen den Cleaner für eine einzelne Aufgabe ausführt.