From 941407b1942334c824017c6171840ba7e68e4614 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Sat, 13 Jun 2020 09:47:25 +0200 Subject: [PATCH] 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 --- .../zcl_abapgit_syntax_highlighter.clas.abap | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/syntax/zcl_abapgit_syntax_highlighter.clas.abap b/src/syntax/zcl_abapgit_syntax_highlighter.clas.abap index cc6b578d7..62735dbe2 100644 --- a/src/syntax/zcl_abapgit_syntax_highlighter.clas.abap +++ b/src/syntax/zcl_abapgit_syntax_highlighter.clas.abap @@ -72,6 +72,11 @@ CLASS zcl_abapgit_syntax_highlighter DEFINITION !iv_class TYPE string RETURNING VALUE(rv_line) TYPE string . + METHODS is_whitespace + IMPORTING + !iv_string TYPE string + RETURNING + VALUE(rv_result) TYPE abap_bool . PRIVATE SECTION. ENDCLASS. @@ -196,6 +201,22 @@ CLASS ZCL_ABAPGIT_SYNTAX_HIGHLIGHTER IMPLEMENTATION. 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. DATA: @@ -244,7 +265,8 @@ CLASS ZCL_ABAPGIT_SYNTAX_HIGHLIGHTER IMPLEMENTATION. 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. ENDIF.