From 4a2752d46714a3c74bd1864047d5cb8358990a21 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Wed, 25 Nov 2020 03:39:17 -0500 Subject: [PATCH] Fix syntax highlighter (#4238) - Fix regression XML highlighter - Adjust UTs for syntax highlighter due to added keywords Closes #4232 Co-authored-by: Lars Hvam --- .../zcl_abapgit_syntax_highlighter.clas.abap | 2 +- ...t_syntax_highlighter.clas.testclasses.abap | 64 ++++++++++++++++++- 2 files changed, 62 insertions(+), 4 deletions(-) diff --git a/src/syntax/zcl_abapgit_syntax_highlighter.clas.abap b/src/syntax/zcl_abapgit_syntax_highlighter.clas.abap index bb71430b6..cd13267a5 100644 --- a/src/syntax/zcl_abapgit_syntax_highlighter.clas.abap +++ b/src/syntax/zcl_abapgit_syntax_highlighter.clas.abap @@ -118,7 +118,7 @@ CLASS zcl_abapgit_syntax_highlighter IMPLEMENTATION. DATA lv_escaped TYPE string. lv_escaped = escape( val = iv_line - format = cl_abap_format=>e_html_text ). + format = cl_abap_format=>e_html_attr ). lv_escaped = show_hidden_chars( lv_escaped ). diff --git a/src/syntax/zcl_abapgit_syntax_highlighter.clas.testclasses.abap b/src/syntax/zcl_abapgit_syntax_highlighter.clas.testclasses.abap index 00e352898..29f3fd7ae 100644 --- a/src/syntax/zcl_abapgit_syntax_highlighter.clas.testclasses.abap +++ b/src/syntax/zcl_abapgit_syntax_highlighter.clas.testclasses.abap @@ -54,6 +54,8 @@ CLASS ltcl_syntax_cases IMPLEMENTATION. METHOD do_test. DATA: lt_matches_act TYPE zcl_abapgit_syntax_highlighter=>ty_match_tt, + ls_match LIKE LINE OF lt_matches_act, + lv_offs TYPE i, lo_syntax TYPE REF TO zcl_abapgit_syntax_highlighter. @@ -83,6 +85,17 @@ CLASS ltcl_syntax_cases IMPLEMENTATION. act = lt_matches_act msg = | Error during extending: { iv_line }| ). + " Check consistency + lv_offs = 0. + LOOP AT lt_matches_act INTO ls_match. + IF ls_match-offset <> lv_offs. + cl_abap_unit_assert=>assert_equals( exp = lv_offs + act = ls_match-offset + msg = | Error during consistency check: { sy-tabix }| ). + ENDIF. + lv_offs = lv_offs + ls_match-length. + ENDLOOP. + ENDMETHOD. METHOD generate_parse. @@ -180,6 +193,9 @@ CLASS ltcl_syntax_cases IMPLEMENTATION. generate_parse( iv_token = 'K' iv_offset = 18 iv_length = 4 ). + generate_parse( iv_token = 'K' + iv_offset = 23 + iv_length = 6 ). " Generate table with expected values after ordering generate_order( iv_token = 'K' @@ -190,6 +206,10 @@ CLASS ltcl_syntax_cases IMPLEMENTATION. iv_offset = 18 iv_length = 4 iv_text_tag = '' ). + generate_order( iv_token = 'K' + iv_offset = 23 + iv_length = 6 + iv_text_tag = '' ). " Generate table with expected values after extending generate_extend( iv_token = 'K' @@ -206,7 +226,15 @@ CLASS ltcl_syntax_cases IMPLEMENTATION. iv_text_tag = '' ). generate_extend( iv_token = '.' iv_offset = 22 - iv_length = 8 + iv_length = 1 + iv_text_tag = '' ). + generate_extend( iv_token = 'K' + iv_offset = 23 + iv_length = 6 + iv_text_tag = '' ). + generate_extend( iv_token = '.' + iv_offset = 29 + iv_length = 1 iv_text_tag = '' ). do_test( iv_line = lv_line @@ -310,6 +338,9 @@ CLASS ltcl_syntax_cases IMPLEMENTATION. generate_parse( iv_token = 'K' iv_offset = 18 iv_length = 4 ). + generate_parse( iv_token = 'K' + iv_offset = 23 + iv_length = 6 ). generate_parse( iv_token = 'K' iv_offset = 30 iv_length = 5 ). @@ -332,6 +363,10 @@ CLASS ltcl_syntax_cases IMPLEMENTATION. iv_offset = 18 iv_length = 4 iv_text_tag = '' ). + generate_order( iv_token = 'K' + iv_offset = 23 + iv_length = 6 + iv_text_tag = '' ). generate_order( iv_token = 'K' iv_offset = 30 iv_length = 5 @@ -356,7 +391,15 @@ CLASS ltcl_syntax_cases IMPLEMENTATION. iv_text_tag = '' ). generate_extend( iv_token = '.' iv_offset = 22 - iv_length = 8 + iv_length = 1 + iv_text_tag = '' ). + generate_extend( iv_token = 'K' + iv_offset = 23 + iv_length = 6 + iv_text_tag = '' ). + generate_extend( iv_token = '.' + iv_offset = 29 + iv_length = 1 iv_text_tag = '' ). generate_extend( iv_token = 'K' iv_offset = 30 @@ -396,6 +439,9 @@ CLASS ltcl_syntax_cases IMPLEMENTATION. generate_parse( iv_token = 'T' iv_offset = 5 iv_length = 1 ). + generate_parse( iv_token = 'K' + iv_offset = 7 + iv_length = 1 ). generate_parse( iv_token = 'T' iv_offset = 9 iv_length = 1 ). @@ -417,6 +463,10 @@ CLASS ltcl_syntax_cases IMPLEMENTATION. iv_offset = 4 iv_length = 1 iv_text_tag = '|' ). + generate_order( iv_token = 'K' + iv_offset = 7 + iv_length = 1 + iv_text_tag = '' ). generate_order( iv_token = 'T' iv_offset = 10 iv_length = 1 @@ -441,7 +491,15 @@ CLASS ltcl_syntax_cases IMPLEMENTATION. iv_text_tag = '|' ). generate_extend( iv_token = '.' iv_offset = 5 - iv_length = 5 + iv_length = 2 + iv_text_tag = '' ). + generate_extend( iv_token = 'K' + iv_offset = 7 + iv_length = 1 + iv_text_tag = '' ). + generate_extend( iv_token = '.' + iv_offset = 8 + iv_length = 2 iv_text_tag = '' ). generate_extend( iv_token = 'T' iv_offset = 10