diff --git a/changelog.txt b/changelog.txt index 623a2ad7..0a536b4a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -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 diff --git a/src/categories/y_category_code_pal.clas.locals_imp.abap b/src/categories/y_category_code_pal.clas.locals_imp.abap index e1829175..e59ced72 100644 --- a/src/categories/y_category_code_pal.clas.locals_imp.abap +++ b/src/categories/y_category_code_pal.clas.locals_imp.abap @@ -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. diff --git a/src/checks/y_check_boolean_input_param.clas.abap b/src/checks/y_check_boolean_input_param.clas.abap index 4b3e60a7..06b2c04a 100644 --- a/src/checks/y_check_boolean_input_param.clas.abap +++ b/src/checks/y_check_boolean_input_param.clas.abap @@ -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 @@ -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 ). @@ -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. @@ -80,4 +79,8 @@ CLASS y_check_boolean_input_param IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_branch_coverage.clas.abap b/src/checks/y_check_branch_coverage.clas.abap index 48409e07..f653a31e 100644 --- a/src/checks/y_check_branch_coverage.clas.abap +++ b/src/checks/y_check_branch_coverage.clas.abap @@ -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. @@ -64,4 +66,10 @@ CLASS y_check_branch_coverage IMPLEMENTATION. METHOD inspect_tokens. RETURN. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_call_method_usage.clas.abap b/src/checks/y_check_call_method_usage.clas.abap index d5bc6ae5..360cdf9d 100644 --- a/src/checks/y_check_call_method_usage.clas.abap +++ b/src/checks/y_check_call_method_usage.clas.abap @@ -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. @@ -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. diff --git a/src/checks/y_check_chain_decl_usage.clas.abap b/src/checks/y_check_chain_decl_usage.clas.abap index 77ce1cd5..915ecb8c 100644 --- a/src/checks/y_check_chain_decl_usage.clas.abap +++ b/src/checks/y_check_chain_decl_usage.clas.abap @@ -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. @@ -125,4 +126,8 @@ CLASS y_check_chain_decl_usage IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_check_in_loop.clas.abap b/src/checks/y_check_check_in_loop.clas.abap index 38e39ab7..5a873b36 100644 --- a/src/checks/y_check_check_in_loop.clas.abap +++ b/src/checks/y_check_check_in_loop.clas.abap @@ -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 @@ -54,4 +55,8 @@ CLASS y_check_check_in_loop IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_check_stmnt_position.clas.abap b/src/checks/y_check_check_stmnt_position.clas.abap index e4b502fd..308cdf07 100644 --- a/src/checks/y_check_check_stmnt_position.clas.abap +++ b/src/checks/y_check_check_stmnt_position.clas.abap @@ -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 @@ -99,4 +100,9 @@ CLASS y_check_check_stmnt_position IMPLEMENTATION. ENDLOOP. ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_collect.clas.abap b/src/checks/y_check_collect.clas.abap index bd977dff..fe7ab16c 100644 --- a/src/checks/y_check_collect.clas.abap +++ b/src/checks/y_check_collect.clas.abap @@ -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 @@ -191,4 +192,10 @@ CLASS Y_CHECK_COLLECT IMPLEMENTATION. RETURN. ENDTRY. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_comment_position.clas.abap b/src/checks/y_check_comment_position.clas.abap index 21b19810..93ec9900 100644 --- a/src/checks/y_check_comment_position.clas.abap +++ b/src/checks/y_check_comment_position.clas.abap @@ -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 @@ -130,4 +131,10 @@ CLASS y_check_comment_position IMPLEMENTATION. ENDTRY. ENDMETHOD. + + METHOD add_check_quickfix. + " Comments are not supported + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_comment_type.clas.abap b/src/checks/y_check_comment_type.clas.abap index 722b807a..8bf0628d 100644 --- a/src/checks/y_check_comment_type.clas.abap +++ b/src/checks/y_check_comment_type.clas.abap @@ -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. @@ -67,4 +68,11 @@ CLASS y_check_comment_type IMPLEMENTATION. result = ''. ENDTRY. ENDMETHOD. + + + METHOD add_check_quickfix. + " Comments are not supported + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_comment_usage.clas.abap b/src/checks/y_check_comment_usage.clas.abap index 12d5e020..6d492005 100644 --- a/src/checks/y_check_comment_usage.clas.abap +++ b/src/checks/y_check_comment_usage.clas.abap @@ -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. @@ -184,4 +185,9 @@ CLASS y_check_comment_usage IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + " Comments are not supported + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_constants_interface.clas.abap b/src/checks/y_check_constants_interface.clas.abap index 9e0ed763..49855918 100644 --- a/src/checks/y_check_constants_interface.clas.abap +++ b/src/checks/y_check_constants_interface.clas.abap @@ -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. @@ -18,8 +19,7 @@ ENDCLASS. -CLASS Y_CHECK_CONSTANTS_INTERFACE IMPLEMENTATION. - +CLASS y_check_constants_interface IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -84,4 +84,8 @@ CLASS Y_CHECK_CONSTANTS_INTERFACE IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_cx_root_usage.clas.abap b/src/checks/y_check_cx_root_usage.clas.abap index 2d099925..9e9c68f8 100644 --- a/src/checks/y_check_cx_root_usage.clas.abap +++ b/src/checks/y_check_cx_root_usage.clas.abap @@ -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 @@ -50,4 +51,8 @@ CLASS y_check_cx_root_usage IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_cyclomatic_complexity.clas.abap b/src/checks/y_check_cyclomatic_complexity.clas.abap index 5686dc8b..332ce987 100644 --- a/src/checks/y_check_cyclomatic_complexity.clas.abap +++ b/src/checks/y_check_cyclomatic_complexity.clas.abap @@ -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. @@ -95,4 +96,10 @@ CLASS Y_CHECK_CYCLOMATIC_COMPLEXITY IMPLEMENTATION. parameter_02 = |{ check_configuration-threshold }| ). ENDIF. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_db_access_in_ut.clas.abap b/src/checks/y_check_db_access_in_ut.clas.abap index f37ab4d0..dc4747a4 100644 --- a/src/checks/y_check_db_access_in_ut.clas.abap +++ b/src/checks/y_check_db_access_in_ut.clas.abap @@ -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, @@ -311,4 +312,8 @@ CLASS Y_CHECK_DB_ACCESS_IN_UT IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_default_key.clas.abap b/src/checks/y_check_default_key.clas.abap index 80d75a14..77040034 100644 --- a/src/checks/y_check_default_key.clas.abap +++ b/src/checks/y_check_default_key.clas.abap @@ -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. @@ -48,4 +49,8 @@ CLASS y_check_default_key IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_deprecated_classes.clas.abap b/src/checks/y_check_deprecated_classes.clas.abap index 63c1b841..4757f981 100644 --- a/src/checks/y_check_deprecated_classes.clas.abap +++ b/src/checks/y_check_deprecated_classes.clas.abap @@ -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, @@ -84,4 +85,9 @@ CLASS y_check_deprecated_classes IMPLEMENTATION. ENDTRY. ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_deprecated_key_words.clas.abap b/src/checks/y_check_deprecated_key_words.clas.abap index 9bdf5d0d..b156d721 100644 --- a/src/checks/y_check_deprecated_key_words.clas.abap +++ b/src/checks/y_check_deprecated_key_words.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_deprecated_key_words DEFINITION PUBLIC INHERITING FROM y_check_bas PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS check_if_error IMPORTING index TYPE i @@ -13,8 +14,7 @@ ENDCLASS. -CLASS Y_CHECK_DEPRECATED_KEY_WORDS IMPLEMENTATION. - +CLASS y_check_deprecated_key_words IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -48,4 +48,10 @@ CLASS Y_CHECK_DEPRECATED_KEY_WORDS IMPLEMENTATION. check_configuration = check_configuration parameter_01 = |{ keyword }| ). ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_empty_catches.clas.abap b/src/checks/y_check_empty_catches.clas.abap index 1aeb521a..302e5cb4 100644 --- a/src/checks/y_check_empty_catches.clas.abap +++ b/src/checks/y_check_empty_catches.clas.abap @@ -5,6 +5,7 @@ CLASS y_check_empty_catches DEFINITION PUBLIC INHERITING FROM y_check_base CREAT PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. METHODS get_token_abs REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_test_double_framework RETURNING VALUE(result) TYPE abap_bool. @@ -64,4 +65,8 @@ CLASS y_check_empty_catches IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_empty_if_branches.clas.abap b/src/checks/y_check_empty_if_branches.clas.abap index ecd5f986..65364a81 100644 --- a/src/checks/y_check_empty_if_branches.clas.abap +++ b/src/checks/y_check_empty_if_branches.clas.abap @@ -8,6 +8,7 @@ CLASS y_check_empty_if_branches DEFINITION PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA branch_counter TYPE i VALUE 0. @@ -132,4 +133,10 @@ CLASS y_check_empty_if_branches IMPLEMENTATION. found_statement = abap_true. ENDIF. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_empty_procedures.clas.abap b/src/checks/y_check_empty_procedures.clas.abap index ad91c83e..20ebe207 100644 --- a/src/checks/y_check_empty_procedures.clas.abap +++ b/src/checks/y_check_empty_procedures.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_empty_procedures DEFINITION PUBLIC INHERITING FROM y_check_base CR PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS get_next_token_from_index IMPORTING index TYPE i @@ -78,4 +79,10 @@ CLASS y_check_empty_procedures IMPLEMENTATION. result = abap_true. ENDCASE. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_equals_sign_chaining.clas.abap b/src/checks/y_check_equals_sign_chaining.clas.abap index 96faf172..4958e07d 100644 --- a/src/checks/y_check_equals_sign_chaining.clas.abap +++ b/src/checks/y_check_equals_sign_chaining.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_equals_sign_chaining DEFINITION PUBLIC INHERITING FROM y_check_bas PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS get_second_token IMPORTING statement TYPE sstmnt @@ -54,4 +55,10 @@ CLASS Y_CHECK_EQUALS_SIGN_CHAINING IMPLEMENTATION. CHECK statement-from + 1 < statement-to. result = get_token_abs( statement-from + 1 ). ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_external_call_in_ut.clas.abap b/src/checks/y_check_external_call_in_ut.clas.abap index fd4cf4ea..1863aca5 100644 --- a/src/checks/y_check_external_call_in_ut.clas.abap +++ b/src/checks/y_check_external_call_in_ut.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_external_call_in_ut DEFINITION PUBLIC INHERITING FROM y_check_base PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS check_if_error IMPORTING index TYPE i @@ -86,4 +87,10 @@ CLASS y_check_external_call_in_ut IMPLEMENTATION. statement = statement ). ENDIF. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_form.clas.abap b/src/checks/y_check_form.clas.abap index cb5c4cb0..6352fae9 100644 --- a/src/checks/y_check_form.clas.abap +++ b/src/checks/y_check_form.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_form DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_screen_event RETURNING VALUE(result) TYPE abap_bool. @@ -66,4 +67,8 @@ CLASS Y_CHECK_FORM IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_function.clas.abap b/src/checks/y_check_function.clas.abap index 44206684..349f57b2 100644 --- a/src/checks/y_check_function.clas.abap +++ b/src/checks/y_check_function.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_function DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUB PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_normal_mode RETURNING VALUE(result) TYPE abap_bool. @@ -48,4 +49,9 @@ CLASS y_check_function IMPLEMENTATION. result = xsdbool( sy-subrc = 0 ). ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_is_interface_in_class.clas.abap b/src/checks/y_check_is_interface_in_class.clas.abap index 8efff606..765febff 100644 --- a/src/checks/y_check_is_interface_in_class.clas.abap +++ b/src/checks/y_check_is_interface_in_class.clas.abap @@ -5,6 +5,7 @@ CLASS y_check_is_interface_in_class DEFINITION PUBLIC INHERITING FROM y_check_ba PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA public_method_counter TYPE i VALUE 0. @@ -103,4 +104,8 @@ CLASS Y_CHECK_IS_INTERFACE_IN_CLASS IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_magic_number.clas.abap b/src/checks/y_check_magic_number.clas.abap index 11f4d710..c35c751e 100644 --- a/src/checks/y_check_magic_number.clas.abap +++ b/src/checks/y_check_magic_number.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_magic_number DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_magic_number RETURNING VALUE(result) TYPE abap_bool. @@ -109,4 +110,8 @@ CLASS y_check_magic_number IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_max_nesting_depth.clas.abap b/src/checks/y_check_max_nesting_depth.clas.abap index 49ecfd5c..1504b75e 100644 --- a/src/checks/y_check_max_nesting_depth.clas.abap +++ b/src/checks/y_check_max_nesting_depth.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_max_nesting_depth DEFINITION PUBLIC INHERITING FROM y_check_base C PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA statement_for_message TYPE sstmnt. @@ -108,4 +109,9 @@ CLASS y_check_max_nesting_depth IMPLEMENTATION. result = xsdbool( token-row = 0 ). ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_message_easy_to_find.clas.abap b/src/checks/y_check_message_easy_to_find.clas.abap index a7a9b099..d1a4e540 100644 --- a/src/checks/y_check_message_easy_to_find.clas.abap +++ b/src/checks/y_check_message_easy_to_find.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_message_easy_to_find DEFINITION PUBLIC INHERITING FROM y_check_bas PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. CLASS-DATA message_classes TYPE HASHED TABLE OF arbgb WITH UNIQUE KEY table_line. @@ -137,4 +138,8 @@ CLASS y_check_message_easy_to_find IMPLEMENTATION. OR token_wa-str CA '->' ). ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_message_translation.clas.abap b/src/checks/y_check_message_translation.clas.abap index ae39ab24..e70a0d31 100644 --- a/src/checks/y_check_message_translation.clas.abap +++ b/src/checks/y_check_message_translation.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_message_translation DEFINITION PUBLIC INHERITING FROM y_check_base PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. ENDCLASS. @@ -35,4 +36,9 @@ CLASS y_check_message_translation IMPLEMENTATION. check_configuration = check_configuration ). ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_method_output_param.clas.abap b/src/checks/y_check_method_output_param.clas.abap index 6263d2af..74ce0467 100644 --- a/src/checks/y_check_method_output_param.clas.abap +++ b/src/checks/y_check_method_output_param.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_method_output_param DEFINITION PUBLIC INHERITING FROM y_check_bas PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA has_exporting_parameter TYPE abap_bool. @@ -18,7 +19,6 @@ ENDCLASS. CLASS Y_CHECK_METHOD_OUTPUT_PARAM IMPLEMENTATION. - METHOD has_error. DATA(sum) = 0. IF has_exporting_parameter = abap_true. @@ -86,4 +86,10 @@ CLASS Y_CHECK_METHOD_OUTPUT_PARAM IMPLEMENTATION. statement_from = statement-from check_configuration = check_configuration ). ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_method_return_bool.clas.abap b/src/checks/y_check_method_return_bool.clas.abap index 23ed89fe..aba83ef0 100644 --- a/src/checks/y_check_method_return_bool.clas.abap +++ b/src/checks/y_check_method_return_bool.clas.abap @@ -6,6 +6,7 @@ CLASS y_check_method_return_bool DEFINITION PUBLIC INHERITING FROM y_check_base DATA method_name TYPE string. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA good_method_names_beginning TYPE TABLE OF string. @@ -105,4 +106,10 @@ CLASS Y_CHECK_METHOD_RETURN_BOOL IMPLEMENTATION. parameter_01 = |{ method_name }| ). ENDIF. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_non_class_exception.clas.abap b/src/checks/y_check_non_class_exception.clas.abap index ed61d527..cec01b12 100644 --- a/src/checks/y_check_non_class_exception.clas.abap +++ b/src/checks/y_check_non_class_exception.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_non_class_exception DEFINITION PUBLIC INHERITING FROM y_check_base PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. METHODS inspect_message IMPORTING statement TYPE sstmnt index TYPE i. @@ -74,4 +75,8 @@ CLASS Y_CHECK_NON_CLASS_EXCEPTION IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_num_exec_statements.clas.abap b/src/checks/y_check_num_exec_statements.clas.abap index 2ca6c407..5ee116b9 100644 --- a/src/checks/y_check_num_exec_statements.clas.abap +++ b/src/checks/y_check_num_exec_statements.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_num_exec_statements DEFINITION PUBLIC INHERITING FROM y_check_base PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA no_exec_statements TYPE i. @@ -26,7 +27,6 @@ ENDCLASS. CLASS Y_CHECK_NUM_EXEC_STATEMENTS IMPLEMENTATION. - METHOD constructor. super->constructor( ). @@ -171,4 +171,10 @@ CLASS Y_CHECK_NUM_EXEC_STATEMENTS IMPLEMENTATION. result = abap_true. ENDIF. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_num_output_parameter.clas.abap b/src/checks/y_check_num_output_parameter.clas.abap index 94822247..92d8edd7 100644 --- a/src/checks/y_check_num_output_parameter.clas.abap +++ b/src/checks/y_check_num_output_parameter.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_num_output_parameter DEFINITION PUBLIC INHERITING FROM y_check_bas PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS count_outputs_of_statement IMPORTING statement TYPE sstmnt RETURNING VALUE(result) TYPE i. @@ -76,4 +77,10 @@ CLASS y_check_num_output_parameter IMPLEMENTATION. ENDLOOP. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_num_public_attributes.clas.abap b/src/checks/y_check_num_public_attributes.clas.abap index e7dd2cb2..5d32d169 100644 --- a/src/checks/y_check_num_public_attributes.clas.abap +++ b/src/checks/y_check_num_public_attributes.clas.abap @@ -1,10 +1,11 @@ CLASS y_check_num_public_attributes 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. CONSTANTS structure_depth_threshold TYPE i VALUE 0. @@ -99,4 +100,8 @@ CLASS y_check_num_public_attributes IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_number_attributes.clas.abap b/src/checks/y_check_number_attributes.clas.abap index e0846a64..19911063 100644 --- a/src/checks/y_check_number_attributes.clas.abap +++ b/src/checks/y_check_number_attributes.clas.abap @@ -5,6 +5,7 @@ CLASS y_check_number_attributes DEFINITION PUBLIC INHERITING FROM y_check_base C PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. CONSTANTS structure_depth_threshold TYPE i VALUE 0. @@ -95,4 +96,8 @@ CLASS y_check_number_attributes IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_number_events.clas.abap b/src/checks/y_check_number_events.clas.abap index cee6b03a..720f52b3 100644 --- a/src/checks/y_check_number_events.clas.abap +++ b/src/checks/y_check_number_events.clas.abap @@ -5,6 +5,7 @@ CLASS y_check_number_events DEFINITION PUBLIC INHERITING FROM y_check_base CREA PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA event_counter TYPE i VALUE 0. @@ -65,4 +66,8 @@ CLASS Y_CHECK_NUMBER_EVENTS IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_number_interfaces.clas.abap b/src/checks/y_check_number_interfaces.clas.abap index 30e3f491..f4cea61e 100644 --- a/src/checks/y_check_number_interfaces.clas.abap +++ b/src/checks/y_check_number_interfaces.clas.abap @@ -5,6 +5,7 @@ CLASS y_check_number_interfaces DEFINITION PUBLIC INHERITING FROM y_check_base C PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA interface_counter TYPE i VALUE 0. @@ -65,4 +66,8 @@ CLASS y_check_number_interfaces IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_number_methods.clas.abap b/src/checks/y_check_number_methods.clas.abap index 680783eb..430e62aa 100644 --- a/src/checks/y_check_number_methods.clas.abap +++ b/src/checks/y_check_number_methods.clas.abap @@ -5,7 +5,7 @@ CLASS y_check_number_methods DEFINITION PUBLIC INHERITING FROM y_check_base CREA PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. - + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA method_counter TYPE i VALUE 0. @@ -68,4 +68,8 @@ CLASS Y_CHECK_NUMBER_METHODS IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_omit_optional_exp.clas.abap b/src/checks/y_check_omit_optional_exp.clas.abap index 08cc8235..abfe42e0 100644 --- a/src/checks/y_check_omit_optional_exp.clas.abap +++ b/src/checks/y_check_omit_optional_exp.clas.abap @@ -4,12 +4,15 @@ CLASS y_check_omit_optional_exp DEFINITION PUBLIC INHERITING FROM y_check_base C PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. - METHODS has_optional_exporting IMPORTING statement TYPE sstmnt - RETURNING VALUE(result) TYPE abap_bool. + METHODS has_optional_exporting RETURNING VALUE(result) TYPE abap_bool. + ENDCLASS. + + CLASS y_check_omit_optional_exp IMPLEMENTATION. METHOD constructor. @@ -23,12 +26,12 @@ CLASS y_check_omit_optional_exp IMPLEMENTATION. set_check_message( 'Omit the optional keyword EXPORTING!' ). ENDMETHOD. - METHOD inspect_tokens. - CHECK statement-type = 'A' - OR statement-type = 'C'. + METHOD inspect_tokens. + CHECK statement-type = scan_stmnt_type-method_direct + OR statement-type = scan_stmnt_type-compute_direct. - CHECK has_optional_exporting( statement ). + CHECK has_optional_exporting( ). DATA(check_configuration) = detect_check_configuration( statement ). @@ -36,22 +39,28 @@ CLASS y_check_omit_optional_exp IMPLEMENTATION. statement_index = index statement_from = statement-from check_configuration = check_configuration ). - ENDMETHOD. + METHOD has_optional_exporting. - LOOP AT ref_scan->tokens ASSIGNING FIELD-SYMBOL() - FROM statement-from TO statement-to. - IF -str = 'EXPORTING'. - result = abap_true. - ELSEIF -str = 'IMPORTING' - OR -str = 'CHANGING' - OR -str = 'RECEIVING' - OR -str = 'EXCEPTIONS'. - result = abap_false. - RETURN. + LOOP AT ref_scan->tokens INTO token_wa + FROM statement_wa-from TO statement_wa-to. + IF token_wa-str = 'EXPORTING'. + result = abap_true. + ELSEIF token_wa-str = 'IMPORTING' + OR token_wa-str = 'CHANGING' + OR token_wa-str = 'RECEIVING' + OR token_wa-str = 'EXCEPTIONS'. + result = abap_false. + RETURN. ENDIF. ENDLOOP. ENDMETHOD. + + METHOD add_check_quickfix. + " Already Exists + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_optional_parameters.clas.abap b/src/checks/y_check_optional_parameters.clas.abap index 1bf5e46b..53bc8f86 100644 --- a/src/checks/y_check_optional_parameters.clas.abap +++ b/src/checks/y_check_optional_parameters.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_optional_parameters DEFINITION PUBLIC INHERITING FROM y_check_base PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS has_optional_parameter IMPORTING statement TYPE sstmnt @@ -12,6 +13,7 @@ CLASS y_check_optional_parameters DEFINITION PUBLIC INHERITING FROM y_check_base ENDCLASS. + CLASS Y_CHECK_OPTIONAL_PARAMETERS IMPLEMENTATION. METHOD constructor. @@ -41,6 +43,7 @@ CLASS Y_CHECK_OPTIONAL_PARAMETERS IMPLEMENTATION. check_configuration = check_configuration ). ENDMETHOD. + METHOD has_optional_parameter. LOOP AT ref_scan->tokens TRANSPORTING NO FIELDS FROM statement-from TO statement-to @@ -50,4 +53,9 @@ CLASS Y_CHECK_OPTIONAL_PARAMETERS IMPLEMENTATION. ENDLOOP. ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_prefer_case_to_elseif.clas.abap b/src/checks/y_check_prefer_case_to_elseif.clas.abap index c25510ee..c7e6c1ca 100644 --- a/src/checks/y_check_prefer_case_to_elseif.clas.abap +++ b/src/checks/y_check_prefer_case_to_elseif.clas.abap @@ -6,6 +6,7 @@ CLASS y_check_prefer_case_to_elseif DEFINITION PUBLIC INHERITING FROM y_check_ba METHODS inspect_structures REDEFINITION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. TYPES: BEGIN OF ty_counter, @@ -114,4 +115,8 @@ CLASS y_check_prefer_case_to_elseif IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_prefer_is_not.clas.abap b/src/checks/y_check_prefer_is_not.clas.abap index 149f86aa..b272703c 100644 --- a/src/checks/y_check_prefer_is_not.clas.abap +++ b/src/checks/y_check_prefer_is_not.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_prefer_is_not DEFINITION PUBLIC INHERITING FROM y_check_base CREAT PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. METHODS is_standard_function IMPORTING token TYPE stokesx RETURNING VALUE(result) TYPE abap_bool. @@ -14,7 +15,6 @@ ENDCLASS. CLASS y_check_prefer_is_not IMPLEMENTATION. - METHOD constructor. super->constructor( ). @@ -75,4 +75,8 @@ CLASS y_check_prefer_is_not IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_prefer_line_exists.clas.abap b/src/checks/y_check_prefer_line_exists.clas.abap index 0f74a08f..5708c6f6 100644 --- a/src/checks/y_check_prefer_line_exists.clas.abap +++ b/src/checks/y_check_prefer_line_exists.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_prefer_line_exists DEFINITION PUBLIC INHERITING FROM y_check_base PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. ENDCLASS. @@ -57,4 +58,8 @@ CLASS y_check_prefer_line_exists IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_prefer_new_to_crt_obj.clas.abap b/src/checks/y_check_prefer_new_to_crt_obj.clas.abap index cd6e3aac..d9fed61e 100644 --- a/src/checks/y_check_prefer_new_to_crt_obj.clas.abap +++ b/src/checks/y_check_prefer_new_to_crt_obj.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_prefer_new_to_crt_obj DEFINITION PUBLIC INHERITING FROM y_check_ba PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. ENDCLASS. @@ -42,4 +43,8 @@ CLASS y_check_prefer_new_to_crt_obj IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_prefer_pragmas.clas.abap b/src/checks/y_check_prefer_pragmas.clas.abap index 8ee19847..1a602c8a 100644 --- a/src/checks/y_check_prefer_pragmas.clas.abap +++ b/src/checks/y_check_prefer_pragmas.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_prefer_pragmas DEFINITION PUBLIC INHERITING FROM y_check_base CREA PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. TYPES: BEGIN OF mapping, @@ -93,4 +94,8 @@ CLASS y_check_prefer_pragmas IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_prefer_returning.clas.abap b/src/checks/y_check_prefer_returning.clas.abap index 294f4210..8cac92a0 100644 --- a/src/checks/y_check_prefer_returning.clas.abap +++ b/src/checks/y_check_prefer_returning.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_prefer_returning DEFINITION PUBLIC INHERITING FROM y_check_base CR PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS has_only_one_exporting IMPORTING statement TYPE sstmnt @@ -98,4 +99,8 @@ CLASS y_check_prefer_returning IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_procedure_coverage.clas.abap b/src/checks/y_check_procedure_coverage.clas.abap index 04ac0d0f..4c8d85d2 100644 --- a/src/checks/y_check_procedure_coverage.clas.abap +++ b/src/checks/y_check_procedure_coverage.clas.abap @@ -5,13 +5,14 @@ CLASS y_check_procedure_coverage DEFINITION PUBLIC INHERITING FROM y_check_base PROTECTED SECTION. METHODS execute_check REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. + ENDCLASS. CLASS y_check_procedure_coverage IMPLEMENTATION. - METHOD constructor. super->constructor( ). @@ -65,4 +66,10 @@ CLASS y_check_procedure_coverage IMPLEMENTATION. METHOD inspect_tokens. RETURN. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_profile_message.clas.abap b/src/checks/y_check_profile_message.clas.abap index 0b18f983..f294d70c 100644 --- a/src/checks/y_check_profile_message.clas.abap +++ b/src/checks/y_check_profile_message.clas.abap @@ -6,6 +6,7 @@ CLASS y_check_profile_message DEFINITION PUBLIC INHERITING FROM y_check_base CRE METHODS execute_check REDEFINITION. METHODS inspect_tokens REDEFINITION. METHODS inform REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. CLASS-DATA ran TYPE abap_bool. @@ -97,4 +98,10 @@ CLASS y_check_profile_message IMPLEMENTATION. ELSE |{ result }, { -profile }| ). ENDLOOP. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_pseudo_comment_usage.clas.abap b/src/checks/y_check_pseudo_comment_usage.clas.abap index ceffce61..d9f306f7 100644 --- a/src/checks/y_check_pseudo_comment_usage.clas.abap +++ b/src/checks/y_check_pseudo_comment_usage.clas.abap @@ -5,6 +5,7 @@ CLASS y_check_pseudo_comment_usage DEFINITION PUBLIC INHERITING FROM y_check_bas PROTECTED SECTION. METHODS execute_check REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. TYPES ty_pseudo_comments LIKE SORTED TABLE OF settings-pseudo_comment WITH NON-UNIQUE KEY table_line. @@ -123,4 +124,8 @@ CLASS y_check_pseudo_comment_usage IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_receiving_usage.clas.abap b/src/checks/y_check_receiving_usage.clas.abap index 2acdf24e..c5037074 100644 --- a/src/checks/y_check_receiving_usage.clas.abap +++ b/src/checks/y_check_receiving_usage.clas.abap @@ -4,12 +4,13 @@ CLASS y_check_receiving_usage DEFINITION PUBLIC INHERITING FROM y_check_base CRE PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. -ENDCLASS. + METHODS add_check_quickfix REDEFINITION. +ENDCLASS. -CLASS Y_CHECK_RECEIVING_USAGE IMPLEMENTATION. +CLASS y_check_receiving_usage IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -56,4 +57,10 @@ CLASS Y_CHECK_RECEIVING_USAGE IMPLEMENTATION. check_configuration = check_configuration ). ENDIF. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_returning_name.clas.abap b/src/checks/y_check_returning_name.clas.abap index 40f46602..c5e38a08 100644 --- a/src/checks/y_check_returning_name.clas.abap +++ b/src/checks/y_check_returning_name.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_returning_name DEFINITION PUBLIC INHERITING FROM y_check_base CREA PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS has_returning_with_wrong_name IMPORTING statement TYPE sstmnt @@ -71,4 +72,8 @@ CLASS y_check_returning_name IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_scope_of_variable.clas.abap b/src/checks/y_check_scope_of_variable.clas.abap index bf76a393..c5e2f2ab 100644 --- a/src/checks/y_check_scope_of_variable.clas.abap +++ b/src/checks/y_check_scope_of_variable.clas.abap @@ -1,9 +1,10 @@ CLASS y_check_scope_of_variable DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . PUBLIC SECTION. - METHODS constructor . + METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_isolated IMPORTING strucutre_row TYPE stmnt_stru @@ -21,7 +22,6 @@ ENDCLASS. CLASS y_check_scope_of_variable IMPLEMENTATION. - METHOD constructor. super->constructor( ). @@ -112,4 +112,9 @@ CLASS y_check_scope_of_variable IMPLEMENTATION. ELSE get_scope_structure( structure-back ) ). ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_self_reference.clas.abap b/src/checks/y_check_self_reference.clas.abap index 1635ecae..7c17da4b 100644 --- a/src/checks/y_check_self_reference.clas.abap +++ b/src/checks/y_check_self_reference.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_self_reference DEFINITION PUBLIC INHERITING FROM y_check_base CREA PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. CONSTANTS method_call TYPE string VALUE 'A' ##NO_TEXT. @@ -16,7 +17,6 @@ ENDCLASS. CLASS y_check_self_reference IMPLEMENTATION. - METHOD constructor. super->constructor( ). @@ -54,4 +54,8 @@ CLASS y_check_self_reference IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_statement_coverage.clas.abap b/src/checks/y_check_statement_coverage.clas.abap index 95854022..7dbf6ac8 100644 --- a/src/checks/y_check_statement_coverage.clas.abap +++ b/src/checks/y_check_statement_coverage.clas.abap @@ -5,13 +5,14 @@ CLASS y_check_statement_coverage DEFINITION PUBLIC INHERITING FROM y_check_base PROTECTED SECTION. METHODS execute_check REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. + ENDCLASS. CLASS y_check_statement_coverage IMPLEMENTATION. - METHOD constructor. super->constructor( ). @@ -64,4 +65,10 @@ CLASS y_check_statement_coverage IMPLEMENTATION. METHOD inspect_tokens. RETURN. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_sub_assign_read_table.clas.abap b/src/checks/y_check_sub_assign_read_table.clas.abap index 3881c6a0..950612b5 100644 --- a/src/checks/y_check_sub_assign_read_table.clas.abap +++ b/src/checks/y_check_sub_assign_read_table.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_sub_assign_read_table DEFINITION PUBLIC INHERITING FROM y_check_ba PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_read_table IMPORTING statement TYPE sstmnt @@ -21,7 +22,6 @@ ENDCLASS. CLASS y_check_sub_assign_read_table IMPLEMENTATION. - METHOD constructor. super->constructor( ). @@ -106,4 +106,10 @@ CLASS y_check_sub_assign_read_table IMPLEMENTATION. ENDIF. ENDLOOP. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_test_seam_usage.clas.abap b/src/checks/y_check_test_seam_usage.clas.abap index ab8c205d..eccad99d 100644 --- a/src/checks/y_check_test_seam_usage.clas.abap +++ b/src/checks/y_check_test_seam_usage.clas.abap @@ -4,13 +4,13 @@ CLASS y_check_test_seam_usage DEFINITION PUBLIC INHERITING FROM y_check_base CRE PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. ENDCLASS. -CLASS Y_CHECK_TEST_SEAM_USAGE IMPLEMENTATION. - +CLASS y_check_test_seam_usage IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -34,4 +34,10 @@ CLASS Y_CHECK_TEST_SEAM_USAGE IMPLEMENTATION. statement_from = statement-from check_configuration = check_configuration ). ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_text_assembly.clas.abap b/src/checks/y_check_text_assembly.clas.abap index e97a0059..ae759436 100644 --- a/src/checks/y_check_text_assembly.clas.abap +++ b/src/checks/y_check_text_assembly.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_text_assembly DEFINITION PUBLIC INHERITING FROM y_check_base CREAT PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. ENDCLASS. @@ -11,7 +12,6 @@ ENDCLASS. CLASS y_check_text_assembly IMPLEMENTATION. - METHOD constructor. super->constructor( ). @@ -56,4 +56,8 @@ CLASS y_check_text_assembly IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_unit_test_assert.clas.abap b/src/checks/y_check_unit_test_assert.clas.abap index edd5bb45..2612425c 100644 --- a/src/checks/y_check_unit_test_assert.clas.abap +++ b/src/checks/y_check_unit_test_assert.clas.abap @@ -4,6 +4,7 @@ CLASS y_check_unit_test_assert DEFINITION PUBLIC INHERITING FROM y_check_base CR PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS get_parameter_reference IMPORTING statement TYPE sstmnt @@ -25,7 +26,6 @@ ENDCLASS. CLASS y_check_unit_test_assert IMPLEMENTATION. - METHOD constructor. super->constructor( ). @@ -165,4 +165,8 @@ CLASS y_check_unit_test_assert IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/foundation/y_check_base.clas.abap b/src/foundation/y_check_base.clas.abap index 017c1acb..1387e13d 100644 --- a/src/foundation/y_check_base.clas.abap +++ b/src/foundation/y_check_base.clas.abap @@ -106,6 +106,11 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT METHODS is_test_code IMPORTING statement TYPE sstmnt RETURNING VALUE(result) TYPE abap_bool. + METHODS add_check_quickfix ABSTRACT IMPORTING check_configuration TYPE y_if_clean_code_manager=>check_configuration + statement_index TYPE int4. + + METHODS new_quickfix RETURNING VALUE(result) TYPE REF TO if_ci_quickfix_abap_actions. + PRIVATE SECTION. METHODS do_attributes_exist RETURNING VALUE(result) TYPE abap_bool. @@ -136,7 +141,7 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT RETURNING VALUE(result) TYPE tadir. METHODS add_pseudo_comment_quickfix IMPORTING check_configuration TYPE y_if_clean_code_manager=>check_configuration - statement_index TYPE int4. + statement_index TYPE int4. ENDCLASS. @@ -482,6 +487,9 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. add_pseudo_comment_quickfix( check_configuration = check_configuration statement_index = statement_index ). + add_check_quickfix( check_configuration = check_configuration + statement_index = statement_index ). + IF is_running_unit_test( ) = abap_true. handle_unit_test_statistics( statement_index = statement_index check_configuration = check_configuration ). @@ -698,20 +706,27 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. CHECK check_configuration-ignore_pseudo_comments = abap_false. TRY. - DATA(context) = cl_ci_quickfix_abap_context=>create_from_scan_stmt( p_ci_scan = ref_scan - p_stmt_idx = statement_index ). + DATA(quickfix) = CAST if_ci_quickfix_abap_actions( quickfix_factory->create_quickfix( ) ). + + quickfix->add_pseudo_comment( p_pseudo_comment = settings-pseudo_comment+5 + p_context = cl_ci_quickfix_abap_context=>create_from_scan_stmt( p_ci_scan = ref_scan + p_stmt_idx = statement_index ) ). CATCH cx_ci_quickfix_failed. RETURN. ENDTRY. + ENDMETHOD. + + METHOD new_quickfix. DATA(quickfix) = quickfix_factory->create_quickfix( ). - quickfix->add_docu_from_msgclass( p_msg_class = 'Y_CODE_PAL_MESSAGES' - p_msg_number = '001' - p_msg_parameter1 = settings-pseudo_comment ). + quickfix->add_docu_from_msgclass( p_msg_class = 'Y_CODE_PAL_MESSAGES' + p_msg_number = '001' + p_msg_parameter1 = description ). + + quickfix->enable_automatic_execution( ). - quickfix->if_ci_quickfix_abap_actions~insert_after( p_new_code = settings-pseudo_comment - p_context = context ). + result = CAST #( quickfix ). ENDMETHOD. diff --git a/src/foundation/y_check_base.clas.locals_imp.abap b/src/foundation/y_check_base.clas.locals_imp.abap index ac9b47d8..c8862085 100644 --- a/src/foundation/y_check_base.clas.locals_imp.abap +++ b/src/foundation/y_check_base.clas.locals_imp.abap @@ -29,7 +29,7 @@ CLASS ltd_check_base DEFINITION INHERITING FROM y_check_base. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. - + METHODS add_check_quickfix REDEFINITION. ENDCLASS. @@ -61,4 +61,8 @@ CLASS ltd_check_base IMPLEMENTATION. RETURN. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/foundation/y_code_pal_messages.msag.xml b/src/foundation/y_code_pal_messages.msag.xml index 2e15cad7..132caa77 100644 --- a/src/foundation/y_code_pal_messages.msag.xml +++ b/src/foundation/y_code_pal_messages.msag.xml @@ -12,7 +12,7 @@ E Y_CODE_PAL_MESSAGES 001 - Add Pseudo Comment (&1) + &1