MakionDocs ← makion.dev

Довідник правил клінера

Це повний каталог 45 правил, які може застосувати ABAP-клінер. Кожне правило наведене зі своїм значенням за замовчуванням (Увімк. або Вимк.) і поясненням того, що воно робить. Таблиці згруповані за категоріями, що відповідають списку Правила на вкладці Клінер ABAP.

Кожне правило зберігає поведінку — воно змінює форму коду, ніколи те, що той робить. Клінер працює у фіксованому конвеєрі: лексичний розбір → запуск увімкнених правил у фіксованому порядку → повторна емісія. Кожне правило перемикається окремо і налаштовується через профіль проєкту; без профілю застосовується значення за замовчуванням, наведене нижче.

П'ять правил за замовчуванням Вимк.: chain_split, concatenate_to_template, describe_lines, identifier_case, align_assignments. Усе інше увімкнено за замовчуванням.

Деякі правила Модернізації потребують мінімального релізу ABAP і не спрацюють нижче за нього — задайте Реліз ABAP системи на вкладці клінера. Дивіться Як працює клінер.

Регістр#

Правило За замовчуванням Що робить
keyword_case Увімк. Нормалізує ключові слова ABAP до нижнього (або верхнього) регістру.
identifier_case Вимк. Нормалізує неключові ідентифікатори до нижнього (або верхнього) регістру.

Розмітка#

Правило За замовчуванням Що робить
pragma_position Увімк. Переносить прагми в кінець рядка перед . / ,; виправляє неправильно розміщені.
indent Увімк. Заново вирівнює відступи операторів за глибиною блоку (лише провідні пробіли).

Пробіли#

Правило За замовчуванням Що робить
spacing_operators Увімк. Рівно один пробіл навколо вже відокремлених пробілами бінарних операторів.
space_before_period Увімк. Прибирає пробіли перед закривальною . у тому ж рядку.
spacing_commas_parens Увімк. Один пробіл після ком-розділювачів, жодного перед; упорядковує відокремлені пробілами дужки.
space_around_text_literal Увімк. Додає пропущені пробіли навколо літералів '…' / `…`.
closing_brackets_position Увімк. Переносить рядок, що містить лише ) або ], у кінець попереднього рядка.

Вирівнювання#

Правило За замовчуванням Що робить
align_declarations Увімк. Вирівнює колонки TYPE / LIKE і VALUE у ланцюжках і серіях оголошень.
align_assignments Вимк. Вирівнює = послідовних простих присвоєнь.
align_perform Увімк. Вирівнює блоки TABLES / USING / CHANGING багаторядкових викликів PERFORM.
align_clear_free Увімк. Вирівнює операнди після CLEAR: / FREE:, компоненти SORT…BY і класи винятків CATCH.
align_aliases Увімк. Вирівнює колонку FOR послідовних оголошень ALIASES.
align_parameters Увімк. Вирівнює = параметрів по одному в рядку всередині багаторядкових дужок виклику / конструктора.

Коментарі#

Правило За замовчуванням Що робить
comment_type Увімк. Перетворює повнорядкові коментарі * на коментарі "; закоментований код і рамки зберігаються.
comment_normalize Увімк. Рівно один пробіл після маркерів коментарів " і *.

Порожні рядки#

Правило За замовчуванням Що робить
condense_blank_lines Увімк. Стискає серії порожніх рядків (за замовчуванням макс. 1) і прибирає кінцеві пробіли.
final_newline Увімк. Гарантує, що файл закінчується рівно одним переносом рядка.

Модернізація#

Правила, що переписують старіший ABAP на сучасні еквіваленти. Де правило потребує мінімального релізу ABAP, це зазначено; переписування спрацьовує лише тоді, коли ваш Реліз ABAP системи достатньо високий.

Правило За замовчуванням Що робить
equals_sign_chain Увімк. a = b = c = 1. → одне присвоєння на рядок.
comparison_operators Увімк. EQ / NE / LT / LE / GT / GE= <> < <= > >= у логічних виразах.
not_is Увімк. NOT x IS INITIALx IS NOT INITIAL.
calculation_assignment Увімк. x = x + n.x += n. (також - * /; потребує ≥ 7.54).
move_to_assignment Увімк. MOVE src TO tgt.tgt = src. (лише простий MOVE).
create_data_to_new Увімк. CREATE DATA dref TYPE t.dref = NEW t( ). (≥ 7.40).
create_object_to_new Увімк. CREATE OBJECT ref TYPE cls.ref = NEW cls( … ). (≥ 7.40).
call_method_functional Увімк. CALL METHOD obj->m.obj->m( … ). (≥ 7.40).
raise_type_to_new Увімк. RAISE EXCEPTION TYPE cls.RAISE EXCEPTION NEW cls( … ). (≥ 7.52).
receiving_keyword Увімк. meth( … RECEIVING r = tgt ).tgt = meth( … ).
omit_exporting Увімк. Прибирає EXPORTING у функціональних викликах, що не мають IMPORTING / CHANGING / RECEIVING / EXCEPTIONS.
concatenate_to_template Вимк. CONCATENATE a b INTO t RESPECTING BLANKS.t = |{ a }{ b }|. (≥ 7.40).
assert_equals_subrc Увімк. assert_equals( act = sy-subrc exp = n )assert_subrc( … ).
assert_equals_boolean Увімк. assert_equals( … exp = abap_true/false )assert_true / assert_false( … ).
arithmetic_compound Увімк. ADD n TO x.x += n. (≥ 7.54).
assert_parameter_order Увімк. Переставляє аргументи cl_abap_unit_assert: спочатку очікуване, потім фактичне.
condense_to_function Увімк. CONDENSE x.x = condense( … ). (≥ 7.02).
translate_to_case Увімк. TRANSLATE x TO UPPER/LOWER CASE.x = to_upper/to_lower( x ). (≥ 7.40).
describe_lines Вимк. DESCRIBE TABLE itab LINES n.n = lines( itab ). (≥ 7.02).
pseudo_comment_to_pragma Увімк. Застарілі псевдокоментарі "#EC##PRAGMA (≥ 7.02).

Читабельність#

Правило За замовчуванням Що робить
empty_commands Увімк. Прибирає оператори, що складаються лише з пунктуації (самотні . : ,); коментарі зберігаються.
chain_split Вимк. Розбиває ланцюжок DATA: на один оператор на член; ланцюжки BEGIN OF / INCLUDE не чіпає.
chain_of_one Увімк. DATA: x TYPE i.DATA x TYPE i. (прибирає двокрапку, коли ланцюжок має один член).
one_command_per_line Увімк. Розносить оператори, що ділять один рядок, на окремі рядки.

Оголошення#

Правило За замовчуванням Що робить
implicit_type Увімк. DATA lv_x(10).DATA lv_x(10) TYPE c LENGTH 10. (явно прописує неявний тип / довжину).
escape_char_parameters Увімк. Додає або прибирає escape-символ ! у назвах параметрів METHODS.