MakionDocs ← makion.dev

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.

Comments#

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 INITIALx 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.