limit shown code inspector findings #2271 (#2307)

* codi_base will now render the full list

* limit list to show first 500
This commit is contained in:
Lars Hvam 2019-01-20 07:51:41 +01:00 committed by GitHub
parent 3b9775b7b0
commit ba9968123f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 111 additions and 102 deletions

View File

@ -71,6 +71,40 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION. CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
METHOD ask_user_for_check_variant.
DATA: lt_return TYPE STANDARD TABLE OF ddshretval.
FIELD-SYMBOLS: <ls_return> LIKE LINE OF lt_return.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = 'SCI_DYNP'
fieldname = 'CHKV'
TABLES
return_tab = lt_return
EXCEPTIONS
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
no_values_found = 4
OTHERS = 5.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
READ TABLE lt_return ASSIGNING <ls_return>
WITH KEY retfield = 'SCI_DYNP-CHKV'.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Please select a check variant.| ).
ENDIF.
rv_check_variant = <ls_return>-fieldval.
ENDMETHOD.
METHOD build_menu. METHOD build_menu.
DATA: lv_opt TYPE c LENGTH 1. DATA: lv_opt TYPE c LENGTH 1.
@ -121,6 +155,17 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD determine_check_variant.
mv_check_variant = mo_repo->get_local_settings( )-code_inspector_check_variant.
IF mv_check_variant IS INITIAL.
mv_check_variant = ask_user_for_check_variant( ).
ENDIF.
ENDMETHOD.
METHOD has_inspection_errors. METHOD has_inspection_errors.
READ TABLE mt_result TRANSPORTING NO FIELDS READ TABLE mt_result TRANSPORTING NO FIELDS
@ -140,8 +185,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
METHOD render_content. METHOD render_content.
FIELD-SYMBOLS: <ls_result> TYPE scir_alvlist.
CREATE OBJECT ro_html. CREATE OBJECT ro_html.
IF mv_check_variant IS INITIAL. IF mv_check_variant IS INITIAL.
@ -161,10 +204,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
ro_html->add( |<br/>| ). ro_html->add( |<br/>| ).
LOOP AT mt_result ASSIGNING <ls_result>. render_result( io_html = ro_html
render_result( io_html = ro_html it_result = mt_result ).
iv_result = <ls_result> ).
ENDLOOP.
ro_html->add( '</div>' ). ro_html->add( '</div>' ).
@ -266,49 +307,4 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
ro_html = super->zif_abapgit_gui_page~render( ). ro_html = super->zif_abapgit_gui_page~render( ).
ENDMETHOD. ENDMETHOD.
METHOD ask_user_for_check_variant.
DATA: lt_return TYPE STANDARD TABLE OF ddshretval.
FIELD-SYMBOLS: <ls_return> LIKE LINE OF lt_return.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = 'SCI_DYNP'
fieldname = 'CHKV'
TABLES
return_tab = lt_return
EXCEPTIONS
field_not_found = 1
no_help_for_field = 2
inconsistent_help = 3
no_values_found = 4
OTHERS = 5.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
READ TABLE lt_return ASSIGNING <ls_return>
WITH KEY retfield = 'SCI_DYNP-CHKV'.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Please select a check variant.| ).
ENDIF.
rv_check_variant = <ls_return>-fieldval.
ENDMETHOD.
METHOD determine_check_variant.
mv_check_variant = mo_repo->get_local_settings( )-code_inspector_check_variant.
IF mv_check_variant IS INITIAL.
mv_check_variant = ask_user_for_check_variant( ).
ENDIF.
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -5,20 +5,21 @@ CLASS zcl_abapgit_gui_page_codi_base DEFINITION PUBLIC ABSTRACT INHERITING FROM
REDEFINITION. REDEFINITION.
PROTECTED SECTION. PROTECTED SECTION.
DATA: mo_repo TYPE REF TO zcl_abapgit_repo.
DATA:
mt_result TYPE scit_alvlist.
METHODS: DATA mo_repo TYPE REF TO zcl_abapgit_repo .
render_result IMPORTING io_html TYPE REF TO zcl_abapgit_html DATA mt_result TYPE scit_alvlist .
iv_result TYPE scir_alvlist,
jump METHODS render_result
IMPORTING IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item !io_html TYPE REF TO zcl_abapgit_html
is_sub_item TYPE zif_abapgit_definitions=>ty_item !it_result TYPE scit_alvlist .
iv_line_number TYPE i METHODS jump
RAISING IMPORTING
zcx_abapgit_exception. !is_item TYPE zif_abapgit_definitions=>ty_item
!is_sub_item TYPE zif_abapgit_definitions=>ty_item
!iv_line_number TYPE i
RAISING
zcx_abapgit_exception .
PRIVATE SECTION. PRIVATE SECTION.
CONSTANTS: c_object_separator TYPE char1 VALUE '|'. CONSTANTS: c_object_separator TYPE char1 VALUE '|'.
@ -104,45 +105,59 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION.
METHOD render_result. METHOD render_result.
CONSTANTS: lc_limit TYPE i VALUE 500.
DATA: lv_class TYPE string, DATA: lv_class TYPE string,
lv_line TYPE string. lv_line TYPE string.
io_html->add( '<div>' ). FIELD-SYMBOLS: <ls_result> TYPE scir_alvlist.
IF iv_result-sobjname IS INITIAL OR
( iv_result-sobjname = iv_result-objname AND
iv_result-sobjtype = iv_result-sobjtype ).
io_html->add_a( iv_txt = |{ iv_result-objtype } { iv_result-objname }|
iv_act = |{ iv_result-objtype }{ iv_result-objname }| &&
|{ c_object_separator }{ c_object_separator }{ iv_result-line }|
iv_typ = zif_abapgit_definitions=>c_action_type-sapevent ).
ELSE.
io_html->add_a( iv_txt = |{ iv_result-objtype } { iv_result-objname }| &&
| < { iv_result-sobjtype } { iv_result-sobjname }|
iv_act = |{ iv_result-objtype }{ iv_result-objname }| &&
|{ c_object_separator }{ iv_result-sobjtype }{ iv_result-sobjname }| &&
|{ c_object_separator }{ iv_result-line }|
iv_typ = zif_abapgit_definitions=>c_action_type-sapevent ).
LOOP AT it_result ASSIGNING <ls_result> TO lc_limit.
io_html->add( '<div>' ).
IF <ls_result>-sobjname IS INITIAL OR
( <ls_result>-sobjname = <ls_result>-objname AND
<ls_result>-sobjtype = <ls_result>-sobjtype ).
io_html->add_a( iv_txt = |{ <ls_result>-objtype } { <ls_result>-objname }|
iv_act = |{ <ls_result>-objtype }{ <ls_result>-objname }| &&
|{ c_object_separator }{ c_object_separator }{ <ls_result>-line }|
iv_typ = zif_abapgit_definitions=>c_action_type-sapevent ).
ELSE.
io_html->add_a( iv_txt = |{ <ls_result>-objtype } { <ls_result>-objname }| &&
| < { <ls_result>-sobjtype } { <ls_result>-sobjname }|
iv_act = |{ <ls_result>-objtype }{ <ls_result>-objname }| &&
|{ c_object_separator }{ <ls_result>-sobjtype }{ <ls_result>-sobjname }| &&
|{ c_object_separator }{ <ls_result>-line }|
iv_typ = zif_abapgit_definitions=>c_action_type-sapevent ).
ENDIF.
io_html->add( '</div>' ).
CASE <ls_result>-kind.
WHEN 'E'.
lv_class = 'error'.
WHEN 'W'.
lv_class = 'warning'.
WHEN OTHERS.
lv_class = 'grey'.
ENDCASE.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = <ls_result>-line
IMPORTING
output = lv_line.
io_html->add( |<div class="{ lv_class }">Line { lv_line }: { <ls_result>-text }</div><br>| ).
ENDLOOP.
IF lines( it_result ) > lc_limit.
io_html->add( |Only first { lc_limit } findings shown in list!| ).
ENDIF. ENDIF.
io_html->add( '</div>' ).
CASE iv_result-kind.
WHEN 'E'.
lv_class = 'error'.
WHEN 'W'.
lv_class = 'warning'.
WHEN OTHERS.
lv_class = 'grey'.
ENDCASE.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = iv_result-line
IMPORTING
output = lv_line.
io_html->add( |<div class="{ lv_class }">Line { lv_line }: { iv_result-text }</div><br>| ).
ENDMETHOD. ENDMETHOD.

View File

@ -13,6 +13,7 @@ CLASS zcl_abapgit_gui_page_syntax DEFINITION PUBLIC FINAL CREATE PUBLIC
METHODS: METHODS:
render_content REDEFINITION. render_content REDEFINITION.
PRIVATE SECTION.
ENDCLASS. ENDCLASS.
@ -30,7 +31,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SYNTAX IMPLEMENTATION.
METHOD render_content. METHOD render_content.
DATA: li_syntax_check TYPE REF TO zif_abapgit_code_inspector. DATA: li_syntax_check TYPE REF TO zif_abapgit_code_inspector.
FIELD-SYMBOLS: <ls_result> LIKE LINE OF mt_result.
li_syntax_check = zcl_abapgit_factory=>get_syntax_check( mo_repo->get_package( ) ). li_syntax_check = zcl_abapgit_factory=>get_syntax_check( mo_repo->get_package( ) ).
@ -43,10 +43,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SYNTAX IMPLEMENTATION.
ro_html->add( 'No errors' ). ro_html->add( 'No errors' ).
ENDIF. ENDIF.
LOOP AT mt_result ASSIGNING <ls_result>. render_result( io_html = ro_html
render_result( io_html = ro_html it_result = mt_result ).
iv_result = <ls_result> ).
ENDLOOP.
ro_html->add( '</div>' ). ro_html->add( '</div>' ).