abaplint rules documentation, 2.82.15

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.

137 Rules

quick fix

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

abapdoc - Check abapdoc
Various checks regarding abapdoc. Base rule checks for existence of abapdoc for public class methods and all interface methods.

align_parameters - Align Parameters whitespace styleguide
Checks for vertially aligned parameters

allowed_object_naming - Allowed object naming naming
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.

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 Only works if the target version is 740sp05 or above

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

begin_end_names - Check BEGIN END names quick fix  syntax
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

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

chain_mainly_declarations - Chain mainly declarations quick fix
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

check_comments - Check Comments styleguide
Various checks for comment usage. * End of line comments. Comments starting with "#EC" or "##" are ignored

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_no_handler_pragma - Check if NO_HANDLER can be removed
Checks NO_HANDLER pragmas that can be removed

check_subrc - Check sy-subrc
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
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.

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

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

constant_classes - Validate constant classes  experimental   syntax  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
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
Checks for usage of tabs (enable to enforce spaces)

cyclic_oo - Cyclic OO
Finds cyclic OO references

cyclomatic_complexity - Cyclomatic Complexity
Cyclomatic complexity, only reported for methods

dangerous_statement - Dangerous statement  security
Detects potentially dangerous statements

db_operation_in_loop - Database operation in loop
Database operation in LOOP/DO/WHILE

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

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

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

downport - Downport statement quick fix  experimental  downport
Experimental downport functionality

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

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

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

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

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

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

forbidden_pseudo_and_pragma - Forbidden pseudo comments and pragma quick fix
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
Checks for TABLES parameters in forms.

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

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

global_class - Global class checks  syntax
Checks related to global classes. * global classes must be in own files * file names must match class name * file names must match interface name * global classes must be global definitions * global interfaces must be global definitions

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

identical_contents - Identical contents
Find identical contents in blocks inside IFs, both in the beginning and in the end. Prerequsites: code is pretty printed with identical cAsE Chained statments are ignored

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 styleguide
Detects nested ifs which can be refactored to a single condition using AND.

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
Checks alignment within statements which span multiple lines.

indentation - Indentation quick fix whitespace
Checks indentation

inline_data_old_versions - Inline data, old versions  syntax
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

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

keyword_case - Keyword case quick fix styleguide
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
Line break multiple parameters

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

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

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

local_class_naming - Local class naming conventions naming
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.

local_variable_names - Local variable naming conventions naming
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
Searches for expressions where extra parentheses can safely be removed

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

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

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

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

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

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

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

mix_returning - Mix of returning and exporting styleguide
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
Checks for a "-" in FORM, DATA, PARAMETER and SELECT-OPTION names

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

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

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

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

no_yoda_conditions - No Yoda conditions
Finds Yoda conditions and reports issues

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
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_receiving - Omit RECEIVING styleguide

parser_702_chaining - Parser Error, bad chanining on 702  syntax
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
Checks for syntax not recognized by abaplint. See recognized syntax at https://syntax.abaplint.org

parser_missing_space - Parser Error, missing space whitespace  syntax
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_placement - Pragma Placement
Place pragmas at end of statements

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
Prefer IS NOT to NOT IS

prefer_raise_exception_new - Prefer RAISE EXCEPTION NEW to RAISE EXCEPTION TYPE quick fix styleguide

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

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

preferred_compare_operator - Preferred compare operator quick fix
Configure undesired operator variants

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

reduce_string_templates - Reduce string templates
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
Checks that exceptions 'system_failure' and 'communication_failure' are handled in RFC calls

select_add_order_by - SELECT add ORDER BY
SELECTs add ORDER BY clause

select_performance - SELECT performance
Various checks regarding SELECT performance.

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

sequential_blank - Sequential blank lines quick fix whitespace
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

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

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

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

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

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

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

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

sy_modification - Modification of SY fields
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
Checks for TRY blocks without a CATCH and CLEANUP block

type_form_parameters - Type FORM parameters
Checks for untyped FORM parameters

types_naming - TYPES naming conventions naming
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
Find unnecessary chaining, all statements are checked

unreachable_code - Unreachable code
Checks for unreachable code.

unsecure_fae - Unsecure FAE  experimental
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
Use boolean expression, xsdbool from 740sp08 and up, boolc from 702 and up

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

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

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

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

whitespace_end - Whitespace at end of line quick fix whitespace
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