Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactoring Quick Fixes #523

Merged
merged 12 commits into from
Nov 17, 2021
Merged
1 change: 1 addition & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Legend

2021-XX-XX v.1.17.0
------------------
* Refactoring Quick Fixes (#523)
+ Quickfix: Pseudo Comment (#509)
+ Check Button: Replicate Configuration
! Check Button: Edit
Expand Down
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.
5 changes: 5 additions & 0 deletions src/checks/y_check_default_key.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ CLASS y_check_default_key DEFINITION PUBLIC INHERITING FROM y_check_base CREATE

PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

ENDCLASS.

Expand Down Expand Up @@ -48,4 +49,8 @@ CLASS y_check_default_key IMPLEMENTATION.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

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

PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
METHODS add_check_quickfix REDEFINITION.

PRIVATE SECTION.
TYPES: BEGIN OF deprecated_classes_type,
Expand Down Expand Up @@ -84,4 +85,9 @@ CLASS y_check_deprecated_classes IMPLEMENTATION.
ENDTRY.
ENDMETHOD.


METHOD add_check_quickfix.
RETURN.
ENDMETHOD.

ENDCLASS.
Loading