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. |
| 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 INITIAL → x 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. |
Páginas relacionadas#
- Como funciona o cleaner — o separador, o interruptor principal e a versão-alvo.
- Chat — onde Clean this task executa o cleaner para uma única tarefa.