mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
ABAP Syntax Highligher: Re-Add New Keywords (#4047)
* add minimal unit test * readd new keywords to abap syntax highlighter - removed duplicates from keywords - removed deprecated pseudo comment - explicitly remove duplicates from keywords to avoid needless dumps Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
7ffb4ff91d
commit
42f52990e5
|
@ -4,21 +4,20 @@ CLASS zcl_abapgit_syntax_abap DEFINITION
|
|||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS class_constructor.
|
||||
METHODS constructor.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF c_css,
|
||||
keyword TYPE string VALUE 'keyword', "#EC NOTEXT
|
||||
text TYPE string VALUE 'text', "#EC NOTEXT
|
||||
comment TYPE string VALUE 'comment', "#EC NOTEXT
|
||||
keyword TYPE string VALUE 'keyword',
|
||||
text TYPE string VALUE 'text',
|
||||
comment TYPE string VALUE 'comment',
|
||||
END OF c_css,
|
||||
|
||||
BEGIN OF c_token,
|
||||
keyword TYPE c VALUE 'K', "#EC NOTEXT
|
||||
text TYPE c VALUE 'T', "#EC NOTEXT
|
||||
comment TYPE c VALUE 'C', "#EC NOTEXT
|
||||
keyword TYPE c VALUE 'K',
|
||||
text TYPE c VALUE 'T',
|
||||
comment TYPE c VALUE 'C',
|
||||
END OF c_token,
|
||||
|
||||
BEGIN OF c_regex,
|
||||
|
@ -44,7 +43,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_SYNTAX_ABAP IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_syntax_abap IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD class_constructor.
|
||||
|
@ -59,7 +58,6 @@ CLASS ZCL_ABAPGIT_SYNTAX_ABAP IMPLEMENTATION.
|
|||
super->constructor( ).
|
||||
|
||||
" Initialize instances of regular expression
|
||||
|
||||
add_rule( iv_regex = c_regex-keyword
|
||||
iv_token = c_token-keyword
|
||||
iv_style = c_css-keyword ).
|
||||
|
@ -176,26 +174,27 @@ CLASS ZCL_ABAPGIT_SYNTAX_ABAP IMPLEMENTATION.
|
|||
'|UNWIND|UP|UPDATE|UPPER|USER|USER-COMMAND|USING|UTF-8|VALID|VALUE|VALUE-REQUEST|VALUES' &&
|
||||
'|VARY|VARYING|VERIFICATION-MESSAGE|VERSION|VIA|VIEW|VISIBLE|WAIT|WARNING|WHEN|WHENEVER' &&
|
||||
'|WHERE|WHILE|WIDTH|WINDOW|WINDOWS|WITH|WITH-HEADING|WITHOUT|WITH-TITLE|WORD|WORK' &&
|
||||
'|WRITE|WRITER|X|XML|XSD|XSTRLEN|YELLOW|YES|YYMMDD|Z|ZERO|ZONE'.
|
||||
'|WRITE|WRITER|X|XML|XSD|XSTRLEN|YELLOW|YES|YYMMDD|Z|ZERO|ZONE' &&
|
||||
'|BINTOHEX|CHAR|CLNT|CONCAT_WITH_SPACE|CURR|DATS|DATS_ADD_DAYS|DATS_ADD_MONTHS' &&
|
||||
'|DATS_DAYS_BETWEEN|DATS_IS_VALID|DEC|END-OF-EDITING|END-TEST-INJECTION|END-TEST-SEAM' &&
|
||||
'|ENDWITH|ENUM|HEXTOBIN|INSTANCE|INSTR|LANG|LTRIM|NUMC|PUSH' &&
|
||||
'|QUAN|RETURNS|RPAD|RTRIM|SSTRING|START-OF-EDITING|TEST-INJECTION|TEST-SEAM|TIMS' &&
|
||||
'|TIMS_IS_VALID|TSTMP_ADD_SECONDS|TSTMP_CURRENT_UTCTIMESTAMP|TSTMP_IS_VALID' &&
|
||||
'|TSTMP_SECONDS_BETWEEN|B|D|DECFLOAT16|DECFLOAT34|F|INT8|N|P|S|STRING|T|UTCLONG|XSTRING' &&
|
||||
'|ABAP_BOOL|ACCP|CUKY|DF16_DEC|DF16_RAW|DF34_DEC|DF34_RAW|FLTP' &&
|
||||
'|INT1|INT2|INT4|LCHR|LRAW|RAWSTRING|DF16_SCL|DF34_SCL' &&
|
||||
'|PREC|VARC|CLIKE|CSEQUENCE|DECFLOAT|NUMERIC|XSEQUENCE|ME|SYST|SY' &&
|
||||
'|BIT-SET|BOOLC|BOOLX|CHAR_OFF|CMAX|CMIN|CONCAT_LINES_OF|CONTAINS|CONTAINS_ANY_NOT_OF' &&
|
||||
'|CONTAINS_ANY_OF|COUNT_ANY_NOT_OF|COUNT_ANY_OF|FIND_ANY_NOT_OF|FIND_ANY_OF|FIND_END' &&
|
||||
'|FROM_MIXED|IPOW|LINE_EXISTS|LINE_INDEX|MATCHES|NMAX|NMIN|REPEAT|RESCALE|REVERSE' &&
|
||||
'|SEGMENT|SHIFT_LEFT|SHIFT_RIGHT|SUBSTRING_AFTER|SUBSTRING_BEFORE|SUBSTRING_FROM|SUBSTRING_TO' &&
|
||||
'|TO_LOWER|TO_MIXED|TO_UPPER|UTCLONG_ADD|UTCLONG_CURRENT|UTCLONG_DIFF|XSDBOOL'.
|
||||
|
||||
* &&
|
||||
* '|BINTOHEX|CHAR|CLNT|CONCAT_WITH_SPACE|CUKY|CURR|DATS|DATS_ADD_DAYS|DATS_ADD_MONTHS' &&
|
||||
* '|DATS_DAYS_BETWEEN|DATS_IS_VALID|DEC|END-OF-EDITING|END-TEST-INJECTION|END-TEST-SEAM' &&
|
||||
* '|ENDWITH|ENUM|FLTP|HEXTOBIN|INSTANCE|INSTR|INT1|INT2|INT4|INT8|LANG|LTRIM|NUMC|PUSH' &&
|
||||
* '|QUAN|RETURNS|RPAD|RTRIM|SSTRING|START-OF-EDITING|TEST-INJECTION|TEST-SEAM|TIMS' &&
|
||||
* '|TIMS_IS_VALID|TSTMP_ADD_SECONDS|TSTMP_CURRENT_UTCTIMESTAMP|TSTMP_IS_VALID' &&
|
||||
* '|TSTMP_SECONDS_BETWEEN|B|D|DECFLOAT16|DECFLOAT34|F|INT8|N|P|S|STRING|T|UTCLONG|XSTRING' &&
|
||||
* '|ABAP_BOOL|ACCP|CHAR|CLNT|CUKY|CURR|DATS|DEC|DF16_DEC|DF16_RAW|DF34_DEC|DF34_RAW|FLTP' &&
|
||||
* '|INT1|INT2|INT4|INT8|LANG|LCHR|LRAW|NUMC|QUAN|RAWSTRING|SSTRING|TIMS|DF16_SCL|DF34_SCL' &&
|
||||
* '|PREC|VARC|CLIKE|CSEQUENCE|DECFLOAT|NUMERIC|XSEQUENCE|ME|SYST|SY' &&
|
||||
* '|BIT-SET|BOOLC|BOOLX|CHAR_OFF|CMAX|CMIN|CONCAT_LINES_OF|CONTAINS|CONTAINS_ANY_NOT_OF' &&
|
||||
* '|CONTAINS_ANY_OF|COUNT_ANY_NOT_OF|COUNT_ANY_OF|FIND_ANY_NOT_OF|FIND_ANY_OF|FIND_END' &&
|
||||
* '|FROM_MIXED|IPOW|LINE_EXISTS|LINE_INDEX|MATCHES|NMAX|NMIN|REPEAT|RESCALE|REVERSE' &&
|
||||
* '|SEGMENT|SHIFT_LEFT|SHIFT_RIGHT|SUBSTRING_AFTER|SUBSTRING_BEFORE|SUBSTRING_FROM' &&
|
||||
* '|SUBSTRING_TO|TO_LOWER|TO_MIXED|TO_UPPER|UTCLONG_ADD|UTCLONG_CURRENT|UTCLONG_DIFF' &&
|
||||
* '|XSDBOOL'.
|
||||
|
||||
SPLIT lv_keywords AT '|' INTO TABLE lt_keywords.
|
||||
" remove duplicates to avoid dumps when converting to a hash table
|
||||
SORT lt_keywords BY table_line ASCENDING.
|
||||
DELETE ADJACENT DUPLICATES FROM lt_keywords.
|
||||
gt_keywords = lt_keywords. " Hash table
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
33
src/syntax/zcl_abapgit_syntax_abap.clas.testclasses.abap
Normal file
33
src/syntax/zcl_abapgit_syntax_abap.clas.testclasses.abap
Normal file
|
@ -0,0 +1,33 @@
|
|||
CLASS ltcl_abapgit_syntax_abap DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA:
|
||||
mo_cut TYPE REF TO zcl_abapgit_syntax_abap.
|
||||
|
||||
METHODS:
|
||||
setup,
|
||||
report_header FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_abapgit_syntax_abap IMPLEMENTATION.
|
||||
|
||||
METHOD setup.
|
||||
|
||||
CREATE OBJECT mo_cut.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD report_header.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = |<span class="keyword">REPORT</span> zfoo.|
|
||||
act = mo_cut->process_line( |REPORT zfoo.| ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
ENDCLASS.
|
|
@ -10,6 +10,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