mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
fix xml syntax for sole closing tag
This commit is contained in:
parent
fdd90aac01
commit
387b8b9cc2
|
@ -5,27 +5,26 @@ CLASS zcl_abapgit_syntax_xml DEFINITION
|
|||
|
||||
PUBLIC SECTION.
|
||||
|
||||
METHODS constructor.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF c_css,
|
||||
xml_tag TYPE string VALUE 'xml_tag', "#EC NOTEXT
|
||||
attr TYPE string VALUE 'attr', "#EC NOTEXT
|
||||
attr_val TYPE string VALUE 'attr_val', "#EC NOTEXT
|
||||
END OF c_css,
|
||||
|
||||
END OF c_css .
|
||||
CONSTANTS:
|
||||
BEGIN OF c_token,
|
||||
xml_tag TYPE c VALUE 'X', "#EC NOTEXT
|
||||
attr TYPE c VALUE 'A', "#EC NOTEXT
|
||||
attr_val TYPE c VALUE 'V', "#EC NOTEXT
|
||||
END OF c_token,
|
||||
|
||||
END OF c_token .
|
||||
CONSTANTS:
|
||||
BEGIN OF c_regex,
|
||||
xml_tag TYPE string VALUE '[<>]', "#EC NOTEXT
|
||||
attr TYPE string VALUE '\s[-a-z:_0-9]+\s*(?==)', "#EC NOTEXT
|
||||
attr_val TYPE string VALUE '["''][^''"]+[''"]', "#EC NOTEXT
|
||||
END OF c_regex .
|
||||
|
||||
METHODS constructor .
|
||||
PROTECTED SECTION.
|
||||
|
||||
METHODS order_matches REDEFINITION.
|
||||
|
@ -34,7 +33,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_SYNTAX_XML IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_syntax_xml IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -91,8 +90,10 @@ CLASS ZCL_ABAPGIT_SYNTAX_XML IMPLEMENTATION.
|
|||
" Adjust length and offset of closing tag
|
||||
ELSEIF <ls_match>-text_tag = '>' AND lv_prev_token <> c_token-xml_tag.
|
||||
lv_state = 'C'.
|
||||
IF <ls_prev> IS ASSIGNED.
|
||||
<ls_match>-length = <ls_match>-offset - <ls_prev>-offset - <ls_prev>-length + <ls_match>-length.
|
||||
<ls_match>-offset = <ls_prev>-offset + <ls_prev>-length.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
lv_state = 'O'.
|
||||
ENDIF.
|
||||
|
|
52
src/syntax/zcl_abapgit_syntax_xml.clas.testclasses.abap
Normal file
52
src/syntax/zcl_abapgit_syntax_xml.clas.testclasses.abap
Normal file
|
@ -0,0 +1,52 @@
|
|||
*"* use this source file for your ABAP unit test classes
|
||||
|
||||
CLASS abapgit_syntax_xml DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA:
|
||||
mo_cut TYPE REF TO zcl_abapgit_syntax_xml.
|
||||
|
||||
METHODS:
|
||||
setup,
|
||||
sole_closing_xml_tag FOR TESTING RAISING cx_static_check,
|
||||
complete_xml_tag FOR TESTING RAISING cx_static_check,
|
||||
complete_xml_tag_with_closing FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS abapgit_syntax_xml IMPLEMENTATION.
|
||||
|
||||
METHOD setup.
|
||||
|
||||
CREATE OBJECT mo_cut.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sole_closing_xml_tag.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = |<span class="xml_tag">></span>|
|
||||
act = mo_cut->process_line( |>| ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD complete_xml_tag.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = |<span class="xml_tag"><tag></span>|
|
||||
act = mo_cut->process_line( |<tag>| ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD complete_xml_tag_with_closing.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = |<span class="xml_tag"><tag/></span>|
|
||||
act = mo_cut->process_line( |<tag/>| ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
|
@ -12,6 +12,7 @@
|
|||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
|
|
Loading…
Reference in New Issue
Block a user