abaplint rules documentation
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.
122 Rules
3
6
1
17
10
31
17
2
37
abapdoc - Check abapdoc
Various checks regarding abapdoc. Base rule checks for existence of abapdoc for public class methods and all interface methods.
SingleFile
Various checks regarding abapdoc. Base rule checks for existence of abapdoc for public class methods and all interface methods.
allowed_object_naming - Allowed object naming
Enforces basic name length and namespace restrictions, see note SAP 104010
Naming,SingleFile
Enforces basic name length and namespace restrictions, see note SAP 104010
allowed_object_types - Check allowed object types
Restricts the set of allowed object types.
SingleFile
Restricts the set of allowed object types.
ambiguous_statement - Check for ambigious statements
Checks for ambiguity between deleting or modifying from internal and database table Add "TABLE" keyword or "@" for escaping SQL variables
SingleFile
Checks for ambiguity between deleting or modifying from internal and database table Add "TABLE" keyword or "@" for escaping SQL variables
avoid_use - Avoid use of certain statements
Detects usage of certain statements.
Styleguide,SingleFile
Detects usage of certain statements.
begin_end_names - Check BEGIN END names
Check BEGIN OF and END OF names match, plus there must be statements between BEGIN and END
Syntax,Quickfix,SingleFile
Check BEGIN OF and END OF names match, plus there must be statements between BEGIN and END
begin_single_include - BEGIN contains single INCLUDE
Finds TYPE BEGIN with just one INCLUDE TYPE, and DATA with single INCLUDE STRUCTURE
SingleFile
Finds TYPE BEGIN with just one INCLUDE TYPE, and DATA with single INCLUDE STRUCTURE
chain_mainly_declarations - Chain mainly declarations
Chain mainly declarations, allows chaining for the configured statements, reports errors for other statements.
SingleFile
Chain mainly declarations, allows chaining for the configured statements, reports errors for other statements.
check_abstract - Check abstract methods and classes
Checks abstract methods and classes: - class defined as abstract and final, - non-abstract class contains abstract methods
SingleFile
Checks abstract methods and classes: - class defined as abstract and final, - non-abstract class contains abstract methods
check_comments - Check Comments
Various checks for comment usage. * End of line comments. Comments starting with "#EC" or "##" are ignored
Styleguide,SingleFile
Various checks for comment usage. * End of line comments. Comments starting with "#EC" or "##" are ignored
check_ddic - Check DDIC
Checks the types of DDIC objects can be resolved, the namespace of the development/errors can be configured in "errorNamespace"
Syntax
Checks the types of DDIC objects can be resolved, the namespace of the development/errors can be configured in "errorNamespace"
check_no_handler_pragma - Check if NO_HANDLER can be removed
Checks NO_HANDLER pragmas that can be removed
SingleFile
Checks NO_HANDLER pragmas that can be removed
check_transformation_exists - Check transformation exists
Checks that used XSLT transformations exist.
Syntax
Checks that used XSLT transformations exist.
class_attribute_names - Class attributes naming
Allows you to enforce a pattern, such as a prefix, for class variable names.
Naming,SingleFile
Allows you to enforce a pattern, such as a prefix, for class variable names.
cloud_types - Check cloud types
Checks that the package does not contain any object types unsupported in cloud ABAP.
SingleFile
Checks that the package does not contain any object types unsupported in cloud ABAP.
colon_missing_space - Colon missing space
Checks for missing spaces after colons in chained statements.
Whitespace,Quickfix,SingleFile
Checks for missing spaces after colons in chained statements.
commented_code - Find commented code
Detects usage of commented out code.
Styleguide,Quickfix,SingleFile
Detects usage of commented out code.
constructor_visibility_public - Check constructor visibility is public
Constructor must be placed in the public section, even if the class is not CREATE PUBLIC.
Styleguide,SingleFile
Constructor must be placed in the public section, even if the class is not CREATE PUBLIC.
contains_tab - Code contains tab
Checks for usage of tabs (enable to enforce spaces)
Whitespace,Quickfix,Styleguide,SingleFile
Checks for usage of tabs (enable to enforce spaces)
cyclomatic_complexity - Cyclomatic Complexity
Cyclomatic complexity, only reported for methods
SingleFile
Cyclomatic complexity, only reported for methods
dangerous_statement - Dangerous statement
Detects potentially dangerous statements
SingleFile,Security
Detects potentially dangerous statements
definitions_top - Place definitions in top of routine
Checks that definitions are placed at the beginning of METHODs and FORMs.
SingleFile,Quickfix
Checks that definitions are placed at the beginning of METHODs and FORMs.
double_space - Double space
Checks that only a single space follows certain common statements.
Whitespace,Quickfix,SingleFile
Checks that only a single space follows certain common statements.
empty_line_in_statement - Find empty lines in statements
Checks that statements do not contain empty lines.
Quickfix,Whitespace,SingleFile
Checks that statements do not contain empty lines.
empty_statement - Remove emty statement
Checks for empty statements (an empty statement is a single dot)
Quickfix,SingleFile
Checks for empty statements (an empty statement is a single dot)
empty_structure - Find empty blocks
Checks that the code does not contain empty blocks.
Styleguide,SingleFile
Checks that the code does not contain empty blocks.
exit_or_check - Find EXIT or CHECK outside loops
Detects usages of EXIT or CHECK statements outside of loops. Use RETURN to leave procesing blocks instead.
Styleguide,SingleFile
Detects usages of EXIT or CHECK statements outside of loops. Use RETURN to leave procesing blocks instead.
exporting - EXPORTING can be omitted
Detects EXPORTING statements which can be omitted.
Styleguide,Quickfix,SingleFile
Detects EXPORTING statements which can be omitted.
forbidden_identifier - Forbidden Identifier
Forbid use of specified identifiers, list of regex.
SingleFile
Forbid use of specified identifiers, list of regex.
forbidden_pseudo_and_pragma - Forbidden pseudo comments and pragma
Checks for unwanted pseudo comments and pragma
Quickfix,SingleFile
Checks for unwanted pseudo comments and pragma
form_tables_obsolete - TABLES parameters are obsolete
Checks for TABLES parameters in forms.
SingleFile
Checks for TABLES parameters in forms.
fully_type_constants - Fully type constants
Checks constants for full typing - no implicit typing allowed.
SingleFile
Checks constants for full typing - no implicit typing allowed.
function_module_recommendations - Function Module Recommendations
Function Module Recommendations
SingleFile
Function Module Recommendations
functional_writing - Use functional writing
Detects usage of call method when functional style calls can be used.
Styleguide,Quickfix,SingleFile
Detects usage of call method when functional style calls can be used.
global_class - Global class checks
Checks related to global classes. * global classes must be in own files * file names must match class name * global classes must be global definitions
Syntax
Checks related to global classes. * global classes must be in own files * file names must match class name * global classes must be global definitions
identical_conditions - Identical conditions
Find identical conditions in IF + CASE + WHILE etc Prerequsites: code is pretty printed with identical cAsE
SingleFile
Find identical conditions in IF + CASE + WHILE etc Prerequsites: code is pretty printed with identical cAsE
identical_contents - Identical contents
Find identical contents in IFs Prerequsites: code is pretty printed with identical cAsE Chained statments are ignored
SingleFile
Find identical contents in IFs Prerequsites: code is pretty printed with identical cAsE Chained statments are ignored
if_in_if - IF in IF
Detects nested ifs which can be refactored to a single condition using AND.
Styleguide,SingleFile
Detects nested ifs which can be refactored to a single condition using AND.
implement_methods - Implement methods
Checks for abstract methods and methods from interfaces which need implementing.
Syntax
Checks for abstract methods and methods from interfaces which need implementing.
in_statement_indentation - In-statement indentation
Checks alignment within block statement declarations which span multiple lines, such as multiple conditions in IF statements.
Whitespace,Quickfix,SingleFile
Checks alignment within block statement declarations which span multiple lines, such as multiple conditions in IF statements.
inline_data_old_versions - Inline data, old versions
Checks for inline data declarations in older releases. Only active for versions less than v740sp02
Syntax,SingleFile
Checks for inline data declarations in older releases. Only active for versions less than v740sp02
keep_single_parameter_on_one_line - Keep single parameters on one line
Keep single parameter calls on one line
Whitespace,Styleguide,SingleFile
Keep single parameter calls on one line
keyword_case - Keyword case
Checks that keywords have the same case. Non-keywords must be lower case.
Styleguide,SingleFile,Quickfix
Checks that keywords have the same case. Non-keywords must be lower case.
line_break_multiple_parameters - Line break multiple parameters
Line break multiple parameters
Whitespace,Styleguide,Quickfix,SingleFile
Line break multiple parameters
line_break_style - Makes sure line breaks are consistent in the ABAP code
Enforces LF as newlines in ABAP files abapGit does not work with CRLF
Whitespace,SingleFile
Enforces LF as newlines in ABAP files abapGit does not work with CRLF
line_only_punc - Line containing only punctuation
Detects lines containing only punctuation.
Styleguide,Quickfix,SingleFile
Detects lines containing only punctuation.
local_class_naming - Local class naming conventions
Allows you to enforce a pattern, such as a prefix, for local class names.
Naming,SingleFile
Allows you to enforce a pattern, such as a prefix, for local class names.
local_testclass_location - Local testclass location
Checks that local test classes are placed in the test include.
SingleFile
Checks that local test classes are placed in the test include.
local_variable_names - Local variable naming conventions
Allows you to enforce a pattern, such as a prefix, for local variables, constants and field symbols. Regexes are case-insensitive.
Naming,SingleFile
Allows you to enforce a pattern, such as a prefix, for local variables, constants and field symbols. Regexes are case-insensitive.
many_parenthesis - Too many parenthesis
Searches for expressions where extra parenthesis can safely be removed
SingleFile
Searches for expressions where extra parenthesis can safely be removed
max_one_method_parameter_per_line - Max one method parameter definition per line
Keep max one method parameter description per line
SingleFile,Whitespace
Keep max one method parameter description per line
max_one_statement - Max one statement per line
Checks that each line contains only a single statement.
Styleguide,Quickfix,SingleFile
Checks that each line contains only a single statement.
method_implemented_twice - Method implemented twice
Reports an error if a method is implemented or defined twice
SingleFile,Syntax
Reports an error if a method is implemented or defined twice
method_overwrites_builtin - Method name overwrites builtin function
Checks Method names that overwrite builtin SAP functions
Naming,SingleFile
Checks Method names that overwrite builtin SAP functions
method_parameter_names - Method parameter naming conventions
Allows you to enforce a pattern, such as a prefix, for method parameter names
Naming,SingleFile
Allows you to enforce a pattern, such as a prefix, for method parameter names
mix_returning - Mix of returning and exporting
Checks that methods don't have a mixture of returning and exporting/changing parameters
Styleguide,SingleFile
Checks that methods don't have a mixture of returning and exporting/changing parameters
nesting - Check nesting depth
Checks for methods exceeding a maximum nesting depth
Styleguide,SingleFile
Checks for methods exceeding a maximum nesting depth
newline_between_methods - New line between methods
Checks for newlines between method implementations.
Whitespace,SingleFile
Checks for newlines between method implementations.
no_public_attributes - No public attributes
Checks that classes and interfaces don't contain any public attributes. Exceptions are excluded from this rule.
Styleguide,SingleFile
Checks that classes and interfaces don't contain any public attributes. Exceptions are excluded from this rule.
object_naming - Object naming conventions
Allows you to enforce a pattern, such as a prefix, for object names
Naming
Allows you to enforce a pattern, such as a prefix, for object names
obsolete_statement - Obsolete statements
Checks for usages of certain obsolete statements
SingleFile,Styleguide
Checks for usages of certain obsolete statements
omit_parameter_name - Omit parameter name
Omit the parameter name in single parameter calls
Styleguide,Quickfix
Omit the parameter name in single parameter calls
parser_702_chaining - Parser Error, bad chanining on 702
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.
Syntax,SingleFile
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
Checks for syntax not recognized by abaplint. See recognized syntax at https://syntax.abaplint.org
Syntax,SingleFile
Checks for syntax not recognized by abaplint. See recognized syntax at https://syntax.abaplint.org
parser_missing_space - Parser Error, missing space
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.
Syntax,Whitespace,SingleFile
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.
prefer_inline - Prefer Inline Declarations
Prefer inline to up-front declarations.
Styleguide,Upport,Experimental,Quickfix
Prefer inline to up-front declarations.
prefer_raise_exception_new - Prefer RAISE EXCEPTION NEW to RAISE EXCEPTION TYPE
Prefer RAISE EXCEPTION NEW to RAISE EXCEPTION TYPE
Styleguide,SingleFile
Prefer RAISE EXCEPTION NEW to RAISE EXCEPTION TYPE
prefer_returning_to_exporting - Prefer RETURNING to EXPORTING
Prefer RETURNING to EXPORTING. Generic types cannot be RETURNING.
Styleguide,SingleFile
Prefer RETURNING to EXPORTING. Generic types cannot be RETURNING.
prefer_xsdbool - Prefer xsdbool over boolc
Prefer xsdbool over boolc
Styleguide,Upport,Quickfix,SingleFile
Prefer xsdbool over boolc
preferred_compare_operator - Preferred compare operator
Configure undesired operator variants
SingleFile,Quickfix
Configure undesired operator variants
prefix_is_current_class - Prefix is current class
Reports errors if the current class or interface references itself with "current_class=>"
Styleguide,Quickfix,SingleFile
Reports errors if the current class or interface references itself with "current_class=>"
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.
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
Checks that exceptions 'system_failure' and 'communication_failure' are handled in RFC calls
SingleFile
Checks that exceptions 'system_failure' and 'communication_failure' are handled in RFC calls
selection_screen_naming - Selection screen naming conventions
Allows you to enforce a pattern, such as a prefix, for selection-screen variable names.
Naming,SingleFile
Allows you to enforce a pattern, such as a prefix, for selection-screen variable names.
sequential_blank - Sequential blank lines
Checks that code does not contain more than the configured number of blank lines in a row.
Whitespace,Quickfix,SingleFile
Checks that code does not contain more than the configured number of blank lines in a row.
short_case - Short CASE
Checks for CASE statements which have fewer than the specified number of branches
SingleFile
Checks for CASE statements which have fewer than the specified number of branches
sicf_consistency - SICF consistency
Checks the validity of ICF services: * Class defined in handler must exist * Class must not have any syntax errors * Class must implement interface IF_HTTP_EXTENSION
Checks the validity of ICF services: * Class defined in handler must exist * Class must not have any syntax errors * Class must implement interface IF_HTTP_EXTENSION
space_before_colon - Space before colon
Checks that there are no spaces in front of colons in chained statements.
Whitespace,SingleFile
Checks that there are no spaces in front of colons in chained statements.
space_before_dot - Space before dot
Checks for extra spaces before dots at the ends of statements
Whitespace,Quickfix,Styleguide,SingleFile
Checks for extra spaces before dots at the ends of statements
sql_escape_host_variables - Escape SQL host variables
Escape SQL host variables, from 740sp05
Upport,Styleguide
Escape SQL host variables, from 740sp05
start_at_tab - Start at tab
Checks that statements start at tabstops.
Whitespace,Styleguide,SingleFile
Checks that statements start at tabstops.
superclass_final - Super class final
Checks that classes which are inherited from are not declared as FINAL.
Syntax
Checks that classes which are inherited from are not declared as FINAL.
tabl_enhancement_category - TABL enhancement category must be set
Checks that tables do not have the enhancement category 'not classified'. You may use standard report RS_DDIC_CLASSIFICATION_FINAL for adjustment.
Checks that tables do not have the enhancement category 'not classified'. You may use standard report RS_DDIC_CLASSIFICATION_FINAL for adjustment.
try_without_catch - TRY without CATCH
Checks for TRY blocks without a CATCH and CLEANUP block
SingleFile
Checks for TRY blocks without a CATCH and CLEANUP block
types_naming - TYPES naming conventions
Allows you to enforce a pattern for TYPES definitions
Naming,SingleFile
Allows you to enforce a pattern for TYPES definitions
uncaught_exception - Uncaught Exception
Uncaught Exception Does not report any issues if the code contains syntax errors
Syntax
Uncaught Exception Does not report any issues if the code contains syntax errors
use_bool_expression - Use boolean expression
Use boolean expression, xsdbool from 740sp08 and up, boolc from 702 and up
Upport,Styleguide,Quickfix,SingleFile
Use boolean expression, xsdbool from 740sp08 and up, boolc from 702 and up
use_class_based_exceptions - Use class based exceptions
Use class based exceptions, checks interface and class definitions
Styleguide,SingleFile
Use class based exceptions, checks interface and class definitions
use_new - Use NEW
Checks for deprecated CREATE OBJECT statements.
Upport,Styleguide,Quickfix,SingleFile
Checks for deprecated CREATE OBJECT statements.
when_others_last - WHEN OTHERS last
Checks that WHEN OTHERS is placed the last within a CASE statement.
SingleFile
Checks that WHEN OTHERS is placed the last within a CASE statement.
whitespace_end - Whitespace at end of line
Checks for redundant whitespace at the end of each line.
Whitespace,Quickfix,SingleFile
Checks for redundant whitespace at the end of each line.
xml_consistency - XML consistency
Checks the consistency of main XML files, eg. naming for CLAS and INTF objects
Naming,Syntax
Checks the consistency of main XML files, eg. naming for CLAS and INTF objects