abaplint rules documentation, 2.106.2

abaplint can be configured by placing a abaplint.json file in the root of the git repository. If no configuration file is found, the default configuration will be used, which contains have all rules enabled.

Get default configuration by running abaplint -d > abaplint.json

abaplint-clean-code contains rule documentation as well as abaplint.json definitions which attempt to align abaplint with the official Clean ABAP styleguide.

163
Rules

2
experimental
   
11
upport
   
1
downport
   
18
whitespace
   
11
naming
   
47
quick fix
   

4
performance
   
23
syntax
   
3
security
   
52
styleguide
   
116
single file
   

7bit_ascii - Check for 7bit ascii  single file
Only allow characters from the 7bit ASCII set.

abapdoc - Check abapdoc styleguide  single file
Various checks regarding abapdoc.

align_parameters - Align Parameters quick fix whitespace styleguide  single file
Checks for vertially aligned parameters

allowed_object_naming - Allowed object naming naming  single file
Enforces basic name length and namespace restrictions, see note SAP 104010

allowed_object_types - Check allowed object types  single file
Restricts the set of allowed object types.

ambiguous_statement - Check for ambigious statements  single file
Checks for ambiguity between deleting or modifying from internal and database table Add "TABLE" keyword or "@" for escaping SQL variables Only works if the target version is 740sp05 or above

avoid_use - Avoid use of certain statements styleguide  single file
Detects usage of certain statements.

begin_end_names - Check BEGIN END names quick fix  syntax   single file
Check BEGIN OF and END OF names match, plus there must be statements between BEGIN and END

begin_single_include - BEGIN contains single INCLUDE  single file
Finds TYPE BEGIN with just one INCLUDE TYPE, and DATA with single INCLUDE STRUCTURE

call_transaction_authority_check - Call Transaction Authority-Check styleguide  security   single file
Checks that usages of CALL TRANSACTION contain an authority-check.

cds_comment_style - CDS Comment Style  single file
Check for obsolete comment style

cds_legacy_view - CDS Legacy View upport  single file
Identify CDS Legacy Views

cds_parser_error - CDS Parser Error  syntax
CDS parsing

chain_mainly_declarations - Chain mainly declarations quick fix  single file
Chain mainly declarations, allows chaining for the configured statements, reports errors for other statements.

change_if_to_case - Change IF to CASE styleguide  single file
Finds IF constructs that can be changed to CASE

check_abstract - Check abstract methods and classes  single file
Checks abstract methods and classes: - class defined as abstract and final, - non-abstract class contains abstract methods

check_comments - Check Comments styleguide  single file
Various checks for comment usage.

check_ddic - Check DDIC  syntax
Checks the types of DDIC objects can be resolved, the namespace of the development/errors can be configured in "errorNamespace"

check_include - Check INCLUDEs  syntax
Checks INCLUDE statements

check_subrc - Check sy-subrc  single file
Check sy-subrc

check_syntax - Check syntax  syntax
Enables syntax check and variable resolution

check_text_elements - Check text elements
Check text elements exists or matches code

check_transformation_exists - Check transformation exists  syntax
Checks that used XSLT transformations exist.

class_attribute_names - Class attributes naming naming  single file
Allows you to enforce a pattern, such as a prefix, for class variable names.

classic_exceptions_overlap - Classic exceptions overlap when catching  single file
Find overlapping classic exceptions

cloud_types - Check cloud types  syntax   single file
Checks that the package does not contain any object types unsupported in cloud ABAP.

colon_missing_space - Colon missing space quick fix whitespace  single file
Checks for missing spaces after colons in chained statements.

commented_code - Find commented code quick fix styleguide  single file
Detects usage of commented out code.

constant_classes - Validate constant classes styleguide
Checks that a class contains exactly the constants corresponding to a domain's fixed values.

constructor_visibility_public - Check constructor visibility is public styleguide  single file
Constructor must be placed in the public section, even if the class is not CREATE PUBLIC.

contains_tab - Code contains tab quick fix whitespace styleguide  single file
Checks for usage of tabs (enable to enforce spaces)

cyclic_oo - Cyclic OO
Finds cyclic OO references

cyclomatic_complexity - Cyclomatic Complexity  single file
Cyclomatic complexity, only reported for methods

dangerous_statement - Dangerous statement  security   single file
Detects potentially dangerous statements

db_operation_in_loop - Database operation in loop  single file   performance
Database operation in LOOP/DO/WHILE

definitions_top - Place definitions in top of routine quick fix  single file
Checks that definitions are placed at the beginning of METHODs, FORMs and FUNCTIONs.

description_empty - Description in class must exist
Ensures descriptions in class metadata exist.

double_space - Double space quick fix whitespace  single file
Checks that only a single space follows certain common statements.

downport - Downport statement quick fix downport
Downport functionality

dynpro_checks - Dynpro Checks  syntax
Various Dynpro checks

easy_to_find_messages - Easy to find messages styleguide
Make messages easy to find

empty_line_in_statement - Find empty lines in statements quick fix whitespace styleguide  single file
Checks that statements do not contain empty lines.

empty_statement - Remove empty statement quick fix  single file
Checks for empty statements (an empty statement is a single dot)

empty_structure - Find empty blocks styleguide  single file
Checks that the code does not contain empty blocks.

exit_or_check - Find EXIT or CHECK outside loops quick fix styleguide  single file
Detects usages of EXIT or CHECK statements outside of loops. Use RETURN to leave procesing blocks instead.

expand_macros - Expand Macros quick fix upport styleguide
Allows expanding macro calls with quick fixes

exporting - EXPORTING can be omitted quick fix styleguide  single file
Detects EXPORTING statements which can be omitted.

forbidden_identifier - Forbidden Identifier  single file
Forbid use of specified identifiers, list of regex.

forbidden_pseudo_and_pragma - Forbidden pseudo comments and pragma quick fix  single file
Checks for unwanted pseudo comments and pragma

forbidden_void_type - Forbidden Void Types
Avoid usage of specified void types.

form_tables_obsolete - TABLES parameters are obsolete  single file
Checks for TABLES parameters in forms.

fully_type_constants - Fully type constants  single file
Checks constants for full typing - no implicit typing allowed.

fully_type_itabs - Fully type internal tables  single file
No implict table types or table keys

function_module_recommendations - Function Module Recommendations  single file
Suggests replacements for various function modules

functional_writing - Use functional writing quick fix styleguide  single file
Detects usage of call method when functional style calls can be used.

global_class - Global class checks  syntax
Checks related to global classes

identical_conditions - Identical conditions  single file
Find identical conditions in IF + CASE + WHILE etc Prerequsites: code is pretty printed with identical cAsE

identical_contents - Identical contents  single file
Find identical contents in blocks inside IFs, both in the beginning and in the end.

identical_descriptions - Identical descriptions
Searches for objects with the same type and same description

identical_form_names - Identical FORM names  syntax
Detects identically named FORMs

if_in_if - IF in IF quick fix styleguide  single file
Detects nested ifs which can be refactored.

implement_methods - Implement methods quick fix  syntax
Checks for abstract methods and methods from interfaces which need implementing.

in_statement_indentation - In-statement indentation quick fix whitespace  single file
Checks alignment within statements which span multiple lines.

indentation - Indentation quick fix whitespace  single file
Checks indentation

inline_data_old_versions - Inline data, old versions  syntax   single file
Checks for inline data declarations in older releases. Only active for versions less than v740sp02

intf_referencing_clas - INTF referencing CLAS
Interface contains references to class

invalid_table_index - Invalid Table Index quick fix  single file
Issues error for constant table index zero, as ABAP starts from 1

keep_single_parameter_on_one_line - Keep single parameters on one line whitespace styleguide  single file
Keep single parameter calls on one line

keyword_case - Keyword case quick fix styleguide  single file
Checks that keywords have the same case. Non-keywords must be lower case.

line_break_multiple_parameters - Line break multiple parameters quick fix whitespace styleguide  single file
Line break multiple parameters

line_break_style - Makes sure line breaks are consistent in the ABAP code whitespace  single file
Enforces LF as newlines in ABAP files abapGit does not work with CRLF

line_length - Line length styleguide  single file
Detects lines exceeding the provided maximum length.

line_only_punc - Line containing only punctuation quick fix styleguide  single file
Detects lines containing only punctuation.

local_class_naming - Local class naming conventions naming  single file
Allows you to enforce a pattern, such as a prefix, for local class names.

local_testclass_consistency - Local testclass consistency  syntax
Checks that local test classes are placed in the test include, and class unit test flag is set

local_variable_names - Local variable naming conventions naming  single file
Allows you to enforce a pattern, such as a prefix, for local variables, constants and field symbols. Regexes are case-insensitive.

main_file_contents - Main file contents
Checks related to report declarations.

many_parentheses - Too many parentheses quick fix  single file
Searches for expressions where extra parentheses can safely be removed

max_one_method_parameter_per_line - Max one method parameter definition per line whitespace  single file
Keep max one method parameter description per line

max_one_statement - Max one statement per line quick fix styleguide  single file
Checks that each line contains only a single statement.

message_exists - Check MESSAGE exists  syntax
In message statements, check that the message class + id exist

method_implemented_twice - Method implemented twice  syntax   single file
Reports an error if a method is implemented or defined twice

method_length - Method/Form Length styleguide  single file
Checks relating to method/form length.

method_overwrites_builtin - Method name overwrites builtin function naming styleguide  single file
Checks Method names that overwrite builtin SAP functions

method_parameter_names - Method parameter naming conventions naming  single file
Allows you to enforce a pattern, such as a prefix, for method parameter names

mix_returning - Mix of returning and exporting styleguide  single file
Checks that methods don't have a mixture of returning and exporting/changing parameters

modify_only_own_db_tables - Modify only own DB tables  security
Modify only own DB tables

msag_consistency - MSAG consistency check
Checks the validity of messages in message classes

names_no_dash - No dashes in FORM and DATA names naming  single file
Checks for a "-" in FORM, DATA, PARAMETER and SELECT-OPTION names

nesting - Check nesting depth styleguide  single file
Checks for methods exceeding a maximum nesting depth

newline_between_methods - New line between methods whitespace  single file
Checks for newlines between method implementations.

no_aliases - No ALIASES  single file
Detects use of the ALIAS statement

no_chained_assignment - No chained assignment styleguide  single file
Find chained assingments and reports issues

no_external_form_calls - No external FORM calls  single file
Detect external form calls

no_inline_in_optional_branches - Don't declare inline in optional branches styleguide  single file
Don't declare inline in optional branches

no_prefixes - No Prefixes styleguide  single file
Dont use hungarian notation

no_public_attributes - No public attributes styleguide  single file
Checks that classes and interfaces don't contain any public attributes. Exceptions are excluded from this rule.

no_yoda_conditions - No Yoda conditions  single file
Finds Yoda conditions and reports issues

nrob_consistency - Number range consistency  single file
Consistency checks for number ranges

object_naming - Object naming conventions naming
Allows you to enforce a pattern, such as a prefix, for object names

obsolete_statement - Obsolete statements quick fix styleguide  single file
Checks for usages of certain obsolete statements

omit_parameter_name - Omit parameter name quick fix styleguide
Omit the parameter name in single parameter calls

omit_preceding_zeros - Omit preceding zeros quick fix  single file
Omit preceding zeros from integer constants

omit_receiving - Omit RECEIVING styleguide  single file
Omit RECEIVING

parser_702_chaining - Parser Error, bad chanining on 702  syntax   single file
ABAP on 702 does not allow for method chaining with IMPORTING/EXPORTING/CHANGING keywords, this rule finds these and reports errors. Only active on target version 702 and below.

parser_error - Parser error  syntax   single file
Checks for syntax not recognized by abaplint. See recognized syntax at https://syntax.abaplint.org

parser_missing_space - Parser Error, missing space whitespace  syntax   single file
In special cases the ABAP language allows for not having spaces before or after string literals. This rule makes sure the spaces are consistently required across the language.

pragma_style - Pragma Style  single file
Check pragmas placement and case

prefer_corresponding - Prefer corresponding( ) to MOVE-CORRESPONDING upport styleguide  single file
Prefer corresponding( ) to MOVE-CORRESPONDING, from v740sp05 and up

prefer_inline - Prefer Inline Declarations quick fix  experimental  upport styleguide
Prefer inline to up-front declarations.

prefer_is_not - Prefer IS NOT to NOT IS quick fix styleguide  single file
Prefer IS NOT to NOT IS

prefer_pragmas - prefer pragmas over pseudo comments  styleguide  single file
prefer pragmas over pseudo comments

prefer_raise_exception_new - Prefer RAISE EXCEPTION NEW to RAISE EXCEPTION TYPE quick fix upport styleguide  single file
Prefer RAISE EXCEPTION NEW to RAISE EXCEPTION TYPE

prefer_returning_to_exporting - Prefer RETURNING to EXPORTING styleguide  single file
Prefer RETURNING to EXPORTING. Generic types cannot be RETURNING.

prefer_xsdbool - Prefer xsdbool over boolc quick fix upport styleguide  single file
Prefer xsdbool over boolc

preferred_compare_operator - Preferred compare operator quick fix  single file
Configure undesired operator variants

prefix_is_current_class - Prefix is current class quick fix styleguide  single file
Reports errors if the current class or interface references itself with "current_class=>"

reduce_procedural_code - Reduce procedural code styleguide  single file
Checks FORM and FUNCTION-MODULE have few statements

reduce_string_templates - Reduce string templates  single file
Checks for string templates

release_idoc - Release iDoc
Checks idoc types and segments are set to status released

remove_descriptions - Remove descriptions
Ensures you have no descriptions in metadata of methods, parameters, etc. Class descriptions are required, see rule description_empty. Consider using ABAP Doc for documentation.

rfc_error_handling - RFC error handling  single file
Checks that exceptions 'system_failure' and 'communication_failure' are handled in RFC calls

select_add_order_by - SELECT add ORDER BY  single file
SELECTs add ORDER BY clause

select_performance - SELECT performance  single file   performance
Various checks regarding SELECT performance.

select_single_full_key - Detect SELECT SINGLE which are possibily not unique
Detect SELECT SINGLE which are possibily not unique

selection_screen_naming - Selection screen naming conventions naming  single file
Allows you to enforce a pattern, such as a prefix, for selection-screen variable names.

sequential_blank - Sequential blank lines quick fix whitespace  single file
Checks that code does not contain more than the configured number of blank lines in a row.

short_case - Short CASE  single file
Checks for CASE statements which have fewer than the specified number of branches

sicf_consistency - SICF consistency
Checks the validity of ICF services

slow_parameter_passing - Slow Parameter Passing  performance
Detects slow pass by value passing for methods where parameter is not changed

space_before_colon - Space before colon quick fix whitespace  single file
Checks that there are no spaces in front of colons in chained statements.

space_before_dot - Space before dot quick fix whitespace styleguide  single file
Checks for extra spaces before dots at the ends of statements

sql_escape_host_variables - Escape SQL host variables quick fix upport  syntax  styleguide
Escape SQL host variables, from 740sp05

sql_value_conversion - Implicit SQL Value Conversion
Ensure types match when selecting from database

start_at_tab - Start at tab whitespace styleguide  single file
Checks that statements start at tabstops.

static_call_via_instance - Static call via instance variable styleguide
Static method call via instance variable

strict_sql - Strict SQL quick fix upport
Strict SQL

superclass_final - Super class final  syntax
Checks that classes which are inherited from are not declared as FINAL.

superfluous_value - Superfluous VALUE  single file
Find superfluous VALUE expressions

sy_modification - Modification of SY fields  single file
Finds modification of sy fields

tabl_enhancement_category - TABL enhancement category must be set
Checks that tables do not have the enhancement category 'not classified'.

try_without_catch - TRY without CATCH  single file
Checks for TRY blocks without a CATCH and CLEANUP block

type_form_parameters - Type FORM parameters  single file
Checks for untyped FORM parameters

types_naming - TYPES naming conventions naming  single file
Allows you to enforce a pattern for TYPES definitions

uncaught_exception - Uncaught Exception  syntax
Checks for uncaught static exception

unknown_types - Unknown types  syntax
Enables check for unknown data types, respects errorNamespace

unnecessary_chaining - Unnecessary Chaining quick fix  single file
Find unnecessary chaining, all statements are checked

unnecessary_pragma - Unnecessary Pragma  single file
Finds pragmas which can be removed

unnecessary_return - Unnecessary Return quick fix  single file
Finds unnecessary RETURN statements

unreachable_code - Unreachable code  single file
Checks for unreachable code.

unsecure_fae - Unsecure FAE  experimental   performance
Checks for unsecure FAE

unused_ddic - Unused DDIC
Checks the usage of DDIC objects

unused_methods - Unused methods
Checks for unused methods

unused_types - Unused types quick fix
Checks for unused TYPE definitions

unused_variables - Unused variables quick fix
Checks for unused variables and constants

use_bool_expression - Use boolean expression quick fix upport styleguide  single file
Use boolean expression, xsdbool from 740sp08 and up, boolc from 702 and up

use_class_based_exceptions - Use class based exceptions styleguide  single file
Use class based exceptions, checks interface and class definitions

use_line_exists - Use line_exists upport styleguide  single file
Use line_exists, from 740sp02 and up

use_new - Use NEW quick fix upport styleguide  single file
Checks for deprecated CREATE OBJECT statements.

when_others_last - WHEN OTHERS last  single file
Checks that WHEN OTHERS is placed the last within a CASE statement.

whitespace_end - Whitespace at end of line quick fix whitespace  single file
Checks for redundant whitespace at the end of each line.

xml_consistency - XML consistency naming  syntax
Checks the consistency of main XML files, eg. naming for CLAS and INTF objects