Avoid parsing empty lines in syntax highlighter (#3483)

* Performance 

Avoid parsing empty lines

* Avoid parsing empty lines in syntax highlighter

* Empty or whitespace

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2020-06-13 09:47:25 +02:00 committed by GitHub
parent 420e6f5964
commit 941407b194
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -72,6 +72,11 @@ CLASS zcl_abapgit_syntax_highlighter DEFINITION
!iv_class TYPE string !iv_class TYPE string
RETURNING RETURNING
VALUE(rv_line) TYPE string . VALUE(rv_line) TYPE string .
METHODS is_whitespace
IMPORTING
!iv_string TYPE string
RETURNING
VALUE(rv_result) TYPE abap_bool .
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
@ -196,6 +201,22 @@ CLASS ZCL_ABAPGIT_SYNTAX_HIGHLIGHTER IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD is_whitespace.
DATA: lv_whitespace TYPE string.
"/^\s+$/
lv_whitespace = ` ` && cl_abap_char_utilities=>horizontal_tab && cl_abap_char_utilities=>cr_lf.
IF iv_string CO lv_whitespace.
rv_result = abap_true.
ELSE.
rv_result = abap_false.
ENDIF.
ENDMETHOD.
METHOD parse_line. METHOD parse_line.
DATA: DATA:
@ -244,7 +265,8 @@ CLASS ZCL_ABAPGIT_SYNTAX_HIGHLIGHTER IMPLEMENTATION.
DATA: lt_matches TYPE ty_match_tt. DATA: lt_matches TYPE ty_match_tt.
IF strlen( iv_line ) = 0. IF iv_line IS INITIAL OR is_whitespace( iv_line ) = abap_true.
rv_line = iv_line.
RETURN. RETURN.
ENDIF. ENDIF.