Skip to content
8 changes: 8 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@ Legend
+ : added
- : removed

2022-XX-XX v.1.17.0
------------------
* typo in constants-interface.md
* Refactoring Quick Fixes (#523)
+ Quickfix: Pseudo Comment (#509)
+ Check Button: Replicate Configuration
! Check Button: Edit

2021-11-11 v.1.16.3
------------------
* Incompatibility with abapGit after commit dc4b3705216757c7533f5802d51 (#528)
Expand Down
2 changes: 1 addition & 1 deletion docs/checks/constants-interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Use enumeration classes instead.

### What to do in case of exception?

In exceptional cases, you can suppress this finding by using the pseudo comment `"#EC CONS_INTF` which should be placed right after the class definition header:
In exceptional cases, you can suppress this finding by using the pseudo comment `"#EC CONS_INTF` which should be placed right after the interface definition:

### Example

Expand Down
6 changes: 1 addition & 5 deletions docs/checks/unit_test_assert.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,4 @@ ENDMETHOD.
### Further Readings & Knowledge

* [Clean ABAP: Don't obsess about coverage](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#dont-obsess-about-coverage)
* [ABAP Test Tools & Frameworks](https://pages.github.tools.sap/EngineeringCulture/ase/ABAP/abapTestTools.html)




* [ABAP Test Tools & Frameworks](https://pages.github.tools.sap/EngineeringCulture/ase/ABAP/abapTestTools.html)
11 changes: 11 additions & 0 deletions src/categories/y_category_code_pal.clas.locals_imp.abap
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,21 @@
CLASS lcl_check_base_mock DEFINITION INHERITING FROM y_check_base.
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

ENDCLASS.



CLASS lcl_check_base_mock IMPLEMENTATION.

METHOD inspect_tokens.
RETURN.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

ENDCLASS.
11 changes: 7 additions & 4 deletions src/checks/y_check_boolean_input_param.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ CLASS y_check_boolean_input_param DEFINITION PUBLIC INHERITING FROM y_check_base

PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

PRIVATE SECTION.
METHODS is_setter_method IMPORTING statement TYPE sstmnt
Expand Down Expand Up @@ -33,8 +34,7 @@ CLASS y_check_boolean_input_param IMPLEMENTATION.


METHOD inspect_tokens.

CHECK get_token_abs( statement-from ) = 'METHODS'.
CHECK keyword( ) = if_kaizen_keywords_c=>gc_methods.
CHECK is_setter_method( statement ) = abap_false.
CHECK has_boolean_input_param( statement ).

Expand All @@ -44,12 +44,11 @@ CLASS y_check_boolean_input_param IMPLEMENTATION.
statement_index = index
statement_from = statement-from
check_configuration = configuration ).

ENDMETHOD.


METHOD is_setter_method.
DATA(method_name) = get_token_abs( statement-from + 1 ).
DATA(method_name) = next1( CONV #( if_kaizen_keywords_c=>gc_methods ) ).
result = xsdbool( method_name CS 'SET_' ).
ENDMETHOD.

Expand Down Expand Up @@ -80,4 +79,8 @@ CLASS y_check_boolean_input_param IMPLEMENTATION.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

ENDCLASS.
8 changes: 8 additions & 0 deletions src/checks/y_check_branch_coverage.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ CLASS y_check_branch_coverage DEFINITION PUBLIC INHERITING FROM y_check_base CRE
PROTECTED SECTION.
METHODS execute_check REDEFINITION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

ENDCLASS.


Expand Down Expand Up @@ -64,4 +66,10 @@ CLASS y_check_branch_coverage IMPLEMENTATION.
METHOD inspect_tokens.
RETURN.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

ENDCLASS.
30 changes: 19 additions & 11 deletions src/checks/y_check_call_method_usage.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ CLASS y_check_call_method_usage DEFINITION PUBLIC INHERITING FROM y_check_base C

PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

ENDCLASS.

Expand All @@ -25,26 +26,33 @@ CLASS y_check_call_method_usage IMPLEMENTATION.


METHOD inspect_tokens.
DATA(has_keyword) = xsdbool( get_token_abs( statement-from ) = 'CALL'
AND get_token_abs( statement-from + 1 ) = 'METHOD' ).
CHECK next1( 'CALL' ) = 'METHOD'.

DATA(token) = next2( p_word1 = 'CALL'
p_word2 = 'METHOD' ).

DATA(token) = get_token_abs( statement-from + 2 ).
DATA(is_dynamic) = xsdbool( token CP '*->(*)*'
OR token CP '*=>(*)*'
OR token CP '*)=>(*)*'
OR token CP '*)=>*'
OR token CP '(*)' ).

IF has_keyword = abap_true
AND is_dynamic = abap_false.
DATA(check_configuration) = detect_check_configuration( statement ).

raise_error( statement_level = statement-level
statement_index = index
statement_from = statement-from
check_configuration = check_configuration ).
IF is_dynamic = abap_true.
RETURN.
ENDIF.

DATA(check_configuration) = detect_check_configuration( statement ).

raise_error( statement_level = statement-level
statement_index = index
statement_from = statement-from
check_configuration = check_configuration ).
ENDMETHOD.


METHOD add_check_quickfix.
" There is a native feature to remove it
RETURN.
ENDMETHOD.

ENDCLASS.
5 changes: 5 additions & 0 deletions src/checks/y_check_chain_decl_usage.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ CLASS y_check_chain_decl_usage DEFINITION PUBLIC INHERITING FROM y_check_base CR
PROTECTED SECTION.
METHODS inspect_statements REDEFINITION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

PRIVATE SECTION.
METHODS get_chained_statements RETURNING VALUE(result) TYPE sstmnt_tab.
Expand Down Expand Up @@ -125,4 +126,8 @@ CLASS y_check_chain_decl_usage IMPLEMENTATION.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

ENDCLASS.
5 changes: 5 additions & 0 deletions src/checks/y_check_check_in_loop.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ CLASS y_check_check_in_loop DEFINITION PUBLIC INHERITING FROM y_check_base CREAT

PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

PRIVATE SECTION.
METHODS get_back_statement IMPORTING structure TYPE sstruc
Expand Down Expand Up @@ -54,4 +55,8 @@ CLASS y_check_check_in_loop IMPLEMENTATION.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

ENDCLASS.
6 changes: 6 additions & 0 deletions src/checks/y_check_check_stmnt_position.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ CLASS y_check_check_stmnt_position DEFINITION PUBLIC INHERITING FROM y_check_bas

PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

PRIVATE SECTION.
METHODS is_not_relevant_token IMPORTING token TYPE string
Expand Down Expand Up @@ -99,4 +100,9 @@ CLASS y_check_check_stmnt_position IMPLEMENTATION.
ENDLOOP.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

ENDCLASS.
7 changes: 7 additions & 0 deletions src/checks/y_check_collect.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ CLASS y_check_collect DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBL

PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

PRIVATE SECTION.
METHODS extract_itab_name IMPORTING statement TYPE sstmnt
Expand Down Expand Up @@ -191,4 +192,10 @@ CLASS Y_CHECK_COLLECT IMPLEMENTATION.
RETURN.
ENDTRY.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

ENDCLASS.
7 changes: 7 additions & 0 deletions src/checks/y_check_comment_position.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ CLASS y_check_comment_position DEFINITION PUBLIC INHERITING FROM y_check_base CR

PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
METHODS: add_check_quickfix REDEFINITION.

PRIVATE SECTION.
METHODS has_wrong_position IMPORTING statement TYPE sstmnt
Expand Down Expand Up @@ -130,4 +131,10 @@ CLASS y_check_comment_position IMPLEMENTATION.
ENDTRY.
ENDMETHOD.


METHOD add_check_quickfix.
" Comments are not supported
RETURN.
ENDMETHOD.

ENDCLASS.
8 changes: 8 additions & 0 deletions src/checks/y_check_comment_type.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ CLASS y_check_comment_type DEFINITION PUBLIC INHERITING FROM y_check_base CREATE
METHODS constructor.
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS has_wrong_comment_type IMPORTING statement TYPE sstmnt RETURNING VALUE(result) TYPE abap_bool.
METHODS get_first_character IMPORTING token TYPE stokesx RETURNING VALUE(result) TYPE char1.
Expand Down Expand Up @@ -67,4 +68,11 @@ CLASS y_check_comment_type IMPLEMENTATION.
result = ''.
ENDTRY.
ENDMETHOD.


METHOD add_check_quickfix.
" Comments are not supported
RETURN.
ENDMETHOD.

ENDCLASS.
6 changes: 6 additions & 0 deletions src/checks/y_check_comment_usage.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ CLASS y_check_comment_usage DEFINITION PUBLIC INHERITING FROM y_check_base CREAT
METHODS execute_check REDEFINITION.
METHODS inspect_statements REDEFINITION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

PRIVATE SECTION.
DATA abs_statement_number TYPE i VALUE 0.
Expand Down Expand Up @@ -184,4 +185,9 @@ CLASS y_check_comment_usage IMPLEMENTATION.
ENDMETHOD.


METHOD add_check_quickfix.
" Comments are not supported
RETURN.
ENDMETHOD.

ENDCLASS.
10 changes: 7 additions & 3 deletions src/checks/y_check_constants_interface.clas.abap
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
CLASS y_check_constants_interface DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor .
METHODS constructor.

PROTECTED SECTION.
METHODS inspect_statements REDEFINITION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

PRIVATE SECTION.
DATA has_something_else TYPE abap_bool VALUE abap_false.
Expand All @@ -18,8 +19,7 @@ ENDCLASS.



CLASS Y_CHECK_CONSTANTS_INTERFACE IMPLEMENTATION.

CLASS y_check_constants_interface IMPLEMENTATION.

METHOD constructor.
super->constructor( ).
Expand Down Expand Up @@ -84,4 +84,8 @@ CLASS Y_CHECK_CONSTANTS_INTERFACE IMPLEMENTATION.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

ENDCLASS.
5 changes: 5 additions & 0 deletions src/checks/y_check_cx_root_usage.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ CLASS y_check_cx_root_usage DEFINITION PUBLIC INHERITING FROM y_check_base CREAT

PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

PRIVATE SECTION.
METHODS has_cx_root IMPORTING statement TYPE sstmnt
Expand Down Expand Up @@ -50,4 +51,8 @@ CLASS y_check_cx_root_usage IMPLEMENTATION.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

ENDCLASS.
7 changes: 7 additions & 0 deletions src/checks/y_check_cyclomatic_complexity.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ CLASS y_check_cyclomatic_complexity DEFINITION PUBLIC INHERITING FROM y_check_ba

PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

PRIVATE SECTION.
DATA cyclo_comp TYPE i.
Expand Down Expand Up @@ -95,4 +96,10 @@ CLASS Y_CHECK_CYCLOMATIC_COMPLEXITY IMPLEMENTATION.
parameter_02 = |{ check_configuration-threshold }| ).
ENDIF.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

ENDCLASS.
5 changes: 5 additions & 0 deletions src/checks/y_check_db_access_in_ut.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ CLASS y_check_db_access_in_ut DEFINITION PUBLIC INHERITING FROM y_check_base CRE
PROTECTED SECTION.
METHODS inspect_structures REDEFINITION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

PRIVATE SECTION.
CONSTANTS: BEGIN OF risk_level,
Expand Down Expand Up @@ -311,4 +312,8 @@ CLASS Y_CHECK_DB_ACCESS_IN_UT IMPLEMENTATION.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

ENDCLASS.
Loading