MakionDocs ← makion.dev

Referência das regras do cleaner

Este é o catálogo completo das 45 regras que o cleaner ABAP pode aplicar. Cada regra é listada com a sua predefinição (Ativada ou Desativada) e o que faz. As tabelas estão agrupadas por categoria, correspondendo à lista de Regras no separador cleaner ABAP.

Todas as regras preservam o comportamento — alteram a forma do código, nunca o que ele faz. O cleaner trabalha num pipeline fixo: Lex → executar as regras ativadas por uma ordem fixa → reemitir. Cada regra é individualmente ativável e configurável através do perfil do projeto; sem perfil, aplica-se a predefinição abaixo.

Cinco regras estão Desativadas por predefinição: chain_split, concatenate_to_template, describe_lines, identifier_case, align_assignments. Tudo o resto está ativado por predefinição.

Algumas regras Modernize exigem uma versão mínima de ABAP e não serão acionadas abaixo dela — defina a Target ABAP release no separador do cleaner. Consulte Como funciona o cleaner.

Casing#

Regra Predefinição O que faz
keyword_case Ativada Normaliza as palavras-chave ABAP para minúsculas (ou maiúsculas).
identifier_case Desativada Normaliza os identificadores que não são palavras-chave para minúsculas (ou maiúsculas).

Layout#

Regra Predefinição O que faz
pragma_position Ativada Move as pragmas para o fim da linha antes do . / ,; corrige as mal colocadas.
indent Ativada Reindenta as instruções pela profundidade do bloco (apenas espaço em branco inicial).

Spacing#

Regra Predefinição O que faz
spacing_operators Ativada Exatamente um espaço à volta de operadores binários já espaçados.
space_before_period Ativada Remove espaços antes de um . de fecho na mesma linha.
spacing_commas_parens Ativada Um espaço depois das vírgulas separadoras, nenhum antes; arruma parênteses espaçados.
space_around_text_literal Ativada Adiciona espaços em falta à volta de literais '…' / `…`.
closing_brackets_position Ativada Move uma linha que contém apenas ) ou ] para o fim da linha anterior.

Alignment#

Regra Predefinição O que faz
align_declarations Ativada Alinha as colunas TYPE / LIKE e VALUE em cadeias e sequências de declaração.
align_assignments Desativada Alinha o = de atribuições simples consecutivas.
align_perform Ativada Alinha os blocos TABLES / USING / CHANGING de chamadas PERFORM multilinha.
align_clear_free Ativada Alinha os operandos após CLEAR: / FREE:, os componentes SORT…BY e as classes de exceção CATCH.
align_aliases Ativada Alinha a coluna FOR de declarações ALIASES consecutivas.
align_parameters Ativada Alinha o = de parâmetros um-por-linha dentro de parênteses multilinha de chamada / construtor.

Comments#

Regra Predefinição O que faz
comment_type Ativada Converte comentários * de linha inteira em comentários "; código comentado e frames são mantidos.
comment_normalize Ativada Exatamente um espaço depois dos marcadores de comentário " e *.

Whitespace#

Regra Predefinição O que faz
condense_blank_lines Ativada Colapsa sequências de linhas em branco (máximo 1 por predefinição) e remove espaço em branco final.
final_newline Ativada Garante que o ficheiro termina com exatamente uma nova linha.

Modernize#

Regras que reescrevem ABAP antigo para equivalentes modernos. Sempre que uma regra precisa de uma versão mínima de ABAP, isso é indicado; a reescrita só é acionada quando a sua Target ABAP release é suficientemente alta.

Regra Predefinição O que faz
equals_sign_chain Ativada a = b = c = 1. → uma atribuição por linha.
comparison_operators Ativada EQ / NE / LT / LE / GT / GE= <> < <= > >= em expressões lógicas.
not_is Ativada NOT x IS INITIALx IS NOT INITIAL.
calculation_assignment Ativada x = x + n.x += n. (também - * /; requer ≥ 7.54).
move_to_assignment Ativada MOVE src TO tgt.tgt = src. (apenas MOVE simples).
create_data_to_new Ativada CREATE DATA dref TYPE t.dref = NEW t( ). (≥ 7.40).
create_object_to_new Ativada CREATE OBJECT ref TYPE cls.ref = NEW cls( … ). (≥ 7.40).
call_method_functional Ativada CALL METHOD obj->m.obj->m( … ). (≥ 7.40).
raise_type_to_new Ativada RAISE EXCEPTION TYPE cls.RAISE EXCEPTION NEW cls( … ). (≥ 7.52).
receiving_keyword Ativada meth( … RECEIVING r = tgt ).tgt = meth( … ).
omit_exporting Ativada Remove EXPORTING em chamadas funcionais que não têm IMPORTING / CHANGING / RECEIVING / EXCEPTIONS.
concatenate_to_template Desativada CONCATENATE a b INTO t RESPECTING BLANKS.t = |{ a }{ b }|. (≥ 7.40).
assert_equals_subrc Ativada assert_equals( act = sy-subrc exp = n )assert_subrc( … ).
assert_equals_boolean Ativada assert_equals( … exp = abap_true/false )assert_true / assert_false( … ).
arithmetic_compound Ativada ADD n TO x.x += n. (≥ 7.54).
assert_parameter_order Ativada Reordena os argumentos de cl_abap_unit_assert: expectativa primeiro, depois o real.
condense_to_function Ativada CONDENSE x.x = condense( … ). (≥ 7.02).
translate_to_case Ativada TRANSLATE x TO UPPER/LOWER CASE.x = to_upper/to_lower( x ). (≥ 7.40).
describe_lines Desativada DESCRIBE TABLE itab LINES n.n = lines( itab ). (≥ 7.02).
pseudo_comment_to_pragma Ativada Pseudo-comentários "#EC obsoletos → ##PRAGMA (≥ 7.02).

Readability#

Regra Predefinição O que faz
empty_commands Ativada Remove instruções que são apenas pontuação (um . : , isolado); os comentários são mantidos.
chain_split Desativada Divide uma cadeia DATA: numa instrução por membro; as cadeias BEGIN OF / INCLUDE ficam intocadas.
chain_of_one Ativada DATA: x TYPE i.DATA x TYPE i. (remove os dois pontos quando uma cadeia tem um membro).
one_command_per_line Ativada Coloca as instruções que partilham uma linha nas suas próprias linhas.

Declarations#

Regra Predefinição O que faz
implicit_type Ativada DATA lv_x(10).DATA lv_x(10) TYPE c LENGTH 10. (explicita o tipo / comprimento implícito).
escape_char_parameters Ativada Adiciona ou remove o caráter de escape ! nos nomes de parâmetros METHODS.