Довідник правил клінера
Це повний каталог 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 INITIAL → x 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. |
Пов'язані сторінки#
- Як працює клінер — вкладка, головний вимикач і цільовий реліз.
- Чат — де Клінер для цієї задачі запускає клінер для однієї задачі.