MakionDocs ← makion.dev

Référence des règles du cleaner

Voici le catalogue complet des 45 règles que le cleaner ABAP peut appliquer. Chaque règle est listée avec sa valeur par défaut (Activé ou Désactivé) et ce qu'elle fait. Les tableaux sont groupés par catégorie, correspondant à la liste Règles de l'onglet cleaner ABAP.

Chaque règle préserve le comportement — elle change la forme du code, jamais ce qu'il fait. Le cleaner fonctionne selon un pipeline fixe : Analyse lexicale → exécution des règles activées dans un ordre fixe → réémission. Chaque règle est activable individuellement et configurable via le profil du projet ; sans profil, la valeur par défaut ci-dessous s'applique.

Cinq règles sont Désactivées par défaut : chain_split, concatenate_to_template, describe_lines, identifier_case, align_assignments. Tout le reste est activé par défaut.

Certaines règles Moderniser nécessitent une version ABAP minimale et ne se déclencheront pas en dessous — réglez la Version ABAP cible dans l'onglet du cleaner. Voir How the cleaner works.

Casse#

Règle Par défaut Ce qu'elle fait
keyword_case Activé Normalise les mots-clés ABAP en minuscules (ou majuscules).
identifier_case Désactivé Normalise les identifiants non mots-clés en minuscules (ou majuscules).

Mise en page#

Règle Par défaut Ce qu'elle fait
pragma_position Activé Déplace les pragmas en fin de ligne avant le . / , ; corrige ceux mal placés.
indent Activé Ré-indente les instructions selon la profondeur de bloc (espaces de tête uniquement).

Espacement#

Règle Par défaut Ce qu'elle fait
spacing_operators Activé Exactement une espace autour des opérateurs binaires déjà espacés.
space_before_period Activé Supprime les espaces avant un . de fermeture sur la même ligne.
spacing_commas_parens Activé Une espace après les virgules de séparation, aucune avant ; corrige les parenthèses espacées.
space_around_text_literal Activé Ajoute les espaces manquantes autour des littéraux '…' / `…`.
closing_brackets_position Activé Remonte une ligne ne contenant que ) ou ] à la fin de la ligne précédente.

Alignement#

Règle Par défaut Ce qu'elle fait
align_declarations Activé Aligne les colonnes TYPE / LIKE et VALUE dans les chaînes et séries de déclarations.
align_assignments Désactivé Aligne le = d'affectations simples consécutives.
align_perform Activé Aligne les blocs TABLES / USING / CHANGING des appels PERFORM multi-lignes.
align_clear_free Activé Aligne les opérandes après CLEAR: / FREE:, les composants SORT…BY et les classes d'exception CATCH.
align_aliases Activé Aligne la colonne FOR des déclarations ALIASES consécutives.
align_parameters Activé Aligne le = des paramètres un-par-ligne à l'intérieur des parenthèses d'appel / de constructeur multi-lignes.

Commentaires#

Règle Par défaut Ce qu'elle fait
comment_type Activé Convertit les commentaires * en ligne entière en commentaires " ; le code commenté et les cadres sont conservés.
comment_normalize Activé Exactement une espace après les marqueurs de commentaire " et *.

Espaces#

Règle Par défaut Ce qu'elle fait
condense_blank_lines Activé Réduit les séries de lignes vides (max 1 par défaut) et supprime les espaces en fin de ligne.
final_newline Activé Garantit que le fichier se termine par exactement un saut de ligne.

Moderniser#

Règles qui réécrivent l'ABAP ancien en équivalents modernes. Lorsqu'une règle nécessite une version ABAP minimale, cela est indiqué ; la réécriture ne se déclenche que lorsque votre Version ABAP cible est suffisamment élevée.

Règle Par défaut Ce qu'elle fait
equals_sign_chain Activé a = b = c = 1. → une affectation par ligne.
comparison_operators Activé EQ / NE / LT / LE / GT / GE= <> < <= > >= dans les expressions logiques.
not_is Activé NOT x IS INITIALx IS NOT INITIAL.
calculation_assignment Activé x = x + n.x += n. (aussi - * / ; nécessite ≥ 7.54).
move_to_assignment Activé MOVE src TO tgt.tgt = src. (MOVE simple uniquement).
create_data_to_new Activé CREATE DATA dref TYPE t.dref = NEW t( ). (≥ 7.40).
create_object_to_new Activé CREATE OBJECT ref TYPE cls.ref = NEW cls( … ). (≥ 7.40).
call_method_functional Activé CALL METHOD obj->m.obj->m( … ). (≥ 7.40).
raise_type_to_new Activé RAISE EXCEPTION TYPE cls.RAISE EXCEPTION NEW cls( … ). (≥ 7.52).
receiving_keyword Activé meth( … RECEIVING r = tgt ).tgt = meth( … ).
omit_exporting Activé Supprime EXPORTING dans les appels fonctionnels sans IMPORTING / CHANGING / RECEIVING / EXCEPTIONS.
concatenate_to_template Désactivé CONCATENATE a b INTO t RESPECTING BLANKS.t = |{ a }{ b }|. (≥ 7.40).
assert_equals_subrc Activé assert_equals( act = sy-subrc exp = n )assert_subrc( … ).
assert_equals_boolean Activé assert_equals( … exp = abap_true/false )assert_true / assert_false( … ).
arithmetic_compound Activé ADD n TO x.x += n. (≥ 7.54).
assert_parameter_order Activé Réordonne les arguments de cl_abap_unit_assert : l'attendu d'abord, puis l'effectif.
condense_to_function Activé CONDENSE x.x = condense( … ). (≥ 7.02).
translate_to_case Activé TRANSLATE x TO UPPER/LOWER CASE.x = to_upper/to_lower( x ). (≥ 7.40).
describe_lines Désactivé DESCRIBE TABLE itab LINES n.n = lines( itab ). (≥ 7.02).
pseudo_comment_to_pragma Activé Pseudo-commentaires "#EC obsolètes → ##PRAGMA (≥ 7.02).

Lisibilité#

Règle Par défaut Ce qu'elle fait
empty_commands Activé Supprime les instructions qui ne sont que de la ponctuation (un . : , isolé) ; les commentaires sont conservés.
chain_split Désactivé Décompose une chaîne DATA: en une instruction par membre ; les chaînes BEGIN OF / INCLUDE restent intactes.
chain_of_one Activé DATA: x TYPE i.DATA x TYPE i. (supprime le deux-points quand une chaîne n'a qu'un membre).
one_command_per_line Activé Place sur leurs propres lignes les instructions qui partagent une ligne.

Déclarations#

Règle Par défaut Ce qu'elle fait
implicit_type Activé DATA lv_x(10).DATA lv_x(10) TYPE c LENGTH 10. (explicite le type / la longueur implicite).
escape_char_parameters Activé Ajoute ou supprime le caractère d'échappement ! sur les noms de paramètres METHODS.