MakionDocs ← makion.dev

Referencia de reglas del cleaner

Este es el catálogo completo de las 45 reglas que el cleaner ABAP puede aplicar. Cada regla se lista con su valor por defecto (Activada o Desactivada) y lo que hace. Las tablas están agrupadas por categoría, coincidiendo con la lista Reglas de la pestaña Cleaner ABAP.

Todas las reglas preservan el comportamiento — cambian la forma del código, nunca lo que hace. El cleaner trabaja en una tubería fija: Lex → ejecutar las reglas habilitadas en un orden fijo → volver a emitir. Cada regla se puede activar y configurar individualmente a través del perfil del proyecto; sin perfil, se aplica el valor por defecto de abajo.

Cinco reglas están Desactivadas por defecto: chain_split, concatenate_to_template, describe_lines, identifier_case, align_assignments. Todo lo demás está activado por defecto.

Algunas reglas de Modernize requieren una release mínima de ABAP y no se activarán por debajo de ella — define la Target ABAP release en la pestaña del cleaner. Consulta Cómo funciona el cleaner.

Casing#

Regla Por defecto Qué hace
keyword_case Activada Normaliza las palabras clave de ABAP a minúsculas (o mayúsculas).
identifier_case Desactivada Normaliza los identificadores que no son palabras clave a minúsculas (o mayúsculas).

Layout#

Regla Por defecto Qué hace
pragma_position Activada Mueve los pragmas al final de la línea antes del . / ,; corrige los mal colocados.
indent Activada Vuelve a indentar las sentencias según la profundidad del bloque (solo el espacio inicial).

Spacing#

Regla Por defecto Qué hace
spacing_operators Activada Exactamente un espacio alrededor de los operadores binarios ya espaciados.
space_before_period Activada Elimina los espacios en blanco antes de un . de cierre en la misma línea.
spacing_commas_parens Activada Un espacio después de las comas separadoras, ninguno antes; ordena los paréntesis con espacios.
space_around_text_literal Activada Añade los espacios en blanco que falten alrededor de los literales '…' / `…`.
closing_brackets_position Activada Sube una línea que solo contiene ) o ] al final de la línea anterior.

Alignment#

Regla Por defecto Qué hace
align_declarations Activada Alinea las columnas TYPE / LIKE y VALUE en cadenas y series de declaraciones.
align_assignments Desactivada Alinea el = de asignaciones simples consecutivas.
align_perform Activada Alinea los bloques TABLES / USING / CHANGING de las llamadas PERFORM multilínea.
align_clear_free Activada Alinea los operandos tras CLEAR: / FREE:, los componentes de SORT…BY y las clases de excepción de CATCH.
align_aliases Activada Alinea la columna FOR de declaraciones ALIASES consecutivas.
align_parameters Activada Alinea el = de los parámetros uno por línea dentro de corchetes multilínea de llamada / constructor.

Comments#

Regla Por defecto Qué hace
comment_type Activada Convierte los comentarios * de línea completa en comentarios "; el código comentado y los marcos se conservan.
comment_normalize Activada Exactamente un espacio después de los marcadores de comentario " y *.

Whitespace#

Regla Por defecto Qué hace
condense_blank_lines Activada Colapsa series de líneas en blanco (máximo 1 por defecto) y elimina el espacio en blanco final.
final_newline Activada Asegura que el archivo termine con exactamente un salto de línea.

Modernize#

Reglas que reescriben ABAP antiguo a equivalentes modernos. Cuando una regla necesita una release mínima de ABAP, se indica; la reescritura solo se activa cuando tu Target ABAP release es suficientemente alta.

Regla Por defecto Qué hace
equals_sign_chain Activada a = b = c = 1. → una asignación por línea.
comparison_operators Activada EQ / NE / LT / LE / GT / GE= <> < <= > >= en expresiones lógicas.
not_is Activada NOT x IS INITIALx IS NOT INITIAL.
calculation_assignment Activada x = x + n.x += n. (también - * /; requiere ≥ 7.54).
move_to_assignment Activada MOVE src TO tgt.tgt = src. (solo MOVE simple).
create_data_to_new Activada CREATE DATA dref TYPE t.dref = NEW t( ). (≥ 7.40).
create_object_to_new Activada CREATE OBJECT ref TYPE cls.ref = NEW cls( … ). (≥ 7.40).
call_method_functional Activada CALL METHOD obj->m.obj->m( … ). (≥ 7.40).
raise_type_to_new Activada RAISE EXCEPTION TYPE cls.RAISE EXCEPTION NEW cls( … ). (≥ 7.52).
receiving_keyword Activada meth( … RECEIVING r = tgt ).tgt = meth( … ).
omit_exporting Activada Elimina EXPORTING en llamadas funcionales que no tienen IMPORTING / CHANGING / RECEIVING / EXCEPTIONS.
concatenate_to_template Desactivada CONCATENATE a b INTO t RESPECTING BLANKS.t = |{ a }{ b }|. (≥ 7.40).
assert_equals_subrc Activada assert_equals( act = sy-subrc exp = n )assert_subrc( … ).
assert_equals_boolean Activada assert_equals( … exp = abap_true/false )assert_true / assert_false( … ).
arithmetic_compound Activada ADD n TO x.x += n. (≥ 7.54).
assert_parameter_order Activada Reordena los argumentos de cl_abap_unit_assert: primero el valor esperado, luego el real.
condense_to_function Activada CONDENSE x.x = condense( … ). (≥ 7.02).
translate_to_case Activada TRANSLATE x TO UPPER/LOWER CASE.x = to_upper/to_lower( x ). (≥ 7.40).
describe_lines Desactivada DESCRIBE TABLE itab LINES n.n = lines( itab ). (≥ 7.02).
pseudo_comment_to_pragma Activada Pseudocomentarios "#EC obsoletos → ##PRAGMA (≥ 7.02).

Readability#

Regla Por defecto Qué hace
empty_commands Activada Elimina las sentencias que solo son puntuación (un . : , aislado); los comentarios se conservan.
chain_split Desactivada Divide una cadena DATA: en una sentencia por miembro; las cadenas BEGIN OF / INCLUDE no se tocan.
chain_of_one Activada DATA: x TYPE i.DATA x TYPE i. (quita los dos puntos cuando una cadena tiene un solo miembro).
one_command_per_line Activada Pone en su propia línea las sentencias que comparten una línea.

Declarations#

Regla Por defecto Qué hace
implicit_type Activada DATA lv_x(10).DATA lv_x(10) TYPE c LENGTH 10. (explicita el tipo / longitud implícitos).
escape_char_parameters Activada Añade o quita el carácter de escape ! en los nombres de parámetros de METHODS.