|
@@ -9,47 +9,55 @@ import IRichLanguageConfiguration = monaco.languages.LanguageConfiguration;
|
|
|
import ILanguage = monaco.languages.IMonarchLanguage;
|
|
|
|
|
|
export const conf: IRichLanguageConfiguration = {
|
|
|
+ comments: {
|
|
|
+ lineComment: '*',
|
|
|
+ },
|
|
|
+ brackets: [
|
|
|
+ ['[', ']'],
|
|
|
+ ['(', ')']
|
|
|
+ ],
|
|
|
};
|
|
|
|
|
|
+const abapKeywords = [
|
|
|
+ 'abstract','add','add-corresponding','adjacent','alias','aliases','all','append','appending','ascending','as','assert','assign','assigned','assigning','association','authority-check',
|
|
|
+ 'back','begin','binary','block','bound','break-point','by','byte',
|
|
|
+ 'class', 'call','cast','changing','check','class-data','class-method','class-methods','clear','close','cnt','collect','commit','cond','character',
|
|
|
+ 'corresponding','communication','component','compute','concatenate','condense','constants','conv','count',
|
|
|
+ 'controls','convert','create','currency',
|
|
|
+ 'data','descending','default','define','deferred','delete','describe','detail','display','divide','divide-corresponding','display-mode','duplicates',
|
|
|
+ 'deleting',
|
|
|
+ 'editor-call','end','endexec','endfunction','ending','endmodule','end-of-definition','end-of-page','end-of-selection','end-test-injection','end-test-seam','exit-command','endclass','endmethod','endform','endinterface',
|
|
|
+ 'endprovide','endselect','endtry','endwhile','enum','event','events','exec','exit','export',
|
|
|
+ 'exporting','extract','exception','exceptions',
|
|
|
+ 'field-symbols','field-groups','field','first','fetch','fields','format','frame','free','from','function','find','for','found','function-pool',
|
|
|
+ 'generate','get',
|
|
|
+ 'handle','hide','hashed',
|
|
|
+ 'include','import','importing','index','infotypes','initial','initialization',
|
|
|
+ 'id','is','in','interface','interfaces','init','input','insert','instance','into',
|
|
|
+ 'key',
|
|
|
+ 'left-justified','leave','like','line','line-count','line-size','load','local','log-point','length','left','leading','lower',
|
|
|
+ 'matchcode','method','mesh','message','message-id','methods','modify','module','move','move-corresponding','multiply','multiply-corresponding','match',
|
|
|
+ 'new','new-line','new-page','new-section','next','no','no-gap','no-gaps','no-sign','no-zero','non-unique','number',
|
|
|
+ 'occurrence','object','obligatory','of','output','overlay','optional','others','occurrences','occurs','offset','options',
|
|
|
+ 'pack','parameters','perform','places','position','print-control','private','program','protected','provide','public','put',
|
|
|
+ 'radiobutton','raising','ranges','receive','receiving','redefinition','reduce','reference','refresh','regex','reject','results','requested',
|
|
|
+ 'ref','replace','report','reserve','restore','result','return','returning','right-justified','rollback','read','read-only','rp-provide-from-last','run',
|
|
|
+ 'scan','screen','scroll','search','select','select-options','selection-screen','stamp','source','subkey',
|
|
|
+ 'separated','set','shift','single','skip','sort','sorted','split','standard','stamp','starting','start-of-selection','sum','subtract-corresponding','statics','step','stop','structure','submatches','submit','subtract','summary','supplied','suppress','section','syntax-check','syntax-trace','system-call','switch',
|
|
|
+ 'tables','table','task','testing','test-seam','test-injection','then','time','times','title','titlebar','to','top-of-page','trailing','transfer','transformation','translate','transporting','types','type','type-pool','type-pools',
|
|
|
+ 'unassign','unique','uline','unpack','update','upper','using',
|
|
|
+ 'value',
|
|
|
+ 'when','while','window','write','where','with','work',
|
|
|
+ 'at','case','catch','continue','do','elseif','else','endat','endcase','enddo','endif','endloop','endon','if','loop','on','raise','try',
|
|
|
+ 'abs','sign','ceil','floor','trunc','frac','acos','asin','atan','cos','sin','tan','cosh','sinh','tanh','exp','log','log10','sqrt','strlen','xstrlen','charlen','lines','numofchar','dbmaxlen','round','rescale','nmax','nmin','cmax','cmin','boolc','boolx','xsdbool','contains','contains_any_of','contains_any_not_of','matches','line_exists','ipow','char_off','count','count_any_of','count_any_not_of','distance','condense','concat_lines_of','escape','find','find_end','find_any_of','find_any_not_of','insert','match','repeat','replace','reverse','segment','shift_left','shift_right','substring','substring_after','substring_from','substring_before','substring_to','to_upper','to_lower','to_mixed','from_mixed','translate','bit-set','line_index',
|
|
|
+ 'definition','implementation','public','inheriting','final'
|
|
|
+ ];
|
|
|
+
|
|
|
export const language = <ILanguage> {
|
|
|
defaultToken: 'invalid',
|
|
|
ignoreCase: true,
|
|
|
tokenPostfix: '.abap',
|
|
|
-
|
|
|
- keywords: [
|
|
|
- 'abstract','add','add-corresponding','adjacent','alias','aliases','all','append','appending','ascending','as','assert','assign','assigned','assigning','association','authority-check',
|
|
|
- 'back','begin','binary','block','bound','break-point','by','byte',
|
|
|
- 'class', 'call','cast','changing','check','class-data','class-method','class-methods','clear','close','cnt','collect','commit','cond','character',
|
|
|
- 'corresponding','communication','component','compute','concatenate','condense','constants','conv','count',
|
|
|
- 'controls','convert','create','currency',
|
|
|
- 'data','descending','default','define','deferred','delete','describe','detail','display','divide','divide-corresponding','display-mode','duplicates',
|
|
|
- 'deleting',
|
|
|
- 'editor-call','end','endexec','endfunction','ending','endmodule','end-of-definition','end-of-page','end-of-selection','end-test-injection','end-test-seam','exit-command','endclass','endmethod','endform','endinterface',
|
|
|
- 'endprovide','endselect','endtry','endwhile','enum','event','events','exec','exit','export',
|
|
|
- 'exporting','extract','exception','exceptions',
|
|
|
- 'field-symbols','field-groups','field','first','fetch','fields','format','frame','free','from','function','find','for','found','function-pool',
|
|
|
- 'generate','get',
|
|
|
- 'handle','hide','hashed',
|
|
|
- 'include','import','importing','index','infotypes','initial','initialization',
|
|
|
- 'id','is','in','interface','interfaces','init','input','insert','instance','into',
|
|
|
- 'key',
|
|
|
- 'left-justified','leave','like','line','line-count','line-size','load','local','log-point','length','left','leading','lower',
|
|
|
- 'matchcode','method','mesh','message','message-id','methods','modify','module','move','move-corresponding','multiply','multiply-corresponding','match',
|
|
|
- 'new','new-line','new-page','new-section','next','no','no-gap','no-gaps','no-sign','no-zero','non-unique','number',
|
|
|
- 'occurrence','object','obligatory','of','output','overlay','optional','others','occurrences','occurs','offset','options',
|
|
|
- 'pack','parameters','perform','places','position','print-control','private','program','protected','provide','public','put',
|
|
|
- 'radiobutton','raising','ranges','receive','receiving','redefinition','reduce','reference','refresh','regex','reject','results','requested',
|
|
|
- 'ref','replace','report','reserve','restore','result','return','returning','right-justified','rollback','read','read-only','rp-provide-from-last','run',
|
|
|
- 'scan','screen','scroll','search','select','select-options','selection-screen','stamp','source','subkey',
|
|
|
- 'separated','set','shift','single','skip','sort','sorted','split','standard','stamp','starting','start-of-selection','sum','subtract-corresponding','statics','step','stop','structure','submatches','submit','subtract','summary','supplied','suppress','section','syntax-check','syntax-trace','system-call','switch',
|
|
|
- 'tables','table','task','testing','test-seam','test-injection','then','time','times','title','titlebar','to','top-of-page','trailing','transfer','transformation','translate','transporting','types','type','type-pool','type-pools',
|
|
|
- 'unassign','unique','uline','unpack','update','upper','using',
|
|
|
- 'value',
|
|
|
- 'when','while','window','write','where','with','work',
|
|
|
- 'at','case','catch','continue','do','elseif','else','endat','endcase','enddo','endif','endloop','endon','if','loop','on','raise','try',
|
|
|
- 'abs','sign','ceil','floor','trunc','frac','acos','asin','atan','cos','sin','tan','cosh','sinh','tanh','exp','log','log10','sqrt','strlen','xstrlen','charlen','lines','numofchar','dbmaxlen','round','rescale','nmax','nmin','cmax','cmin','boolc','boolx','xsdbool','contains','contains_any_of','contains_any_not_of','matches','line_exists','ipow','char_off','count','count_any_of','count_any_not_of','distance','condense','concat_lines_of','escape','find','find_end','find_any_of','find_any_not_of','insert','match','repeat','replace','reverse','segment','shift_left','shift_right','substring','substring_after','substring_from','substring_before','substring_to','to_upper','to_lower','to_mixed','from_mixed','translate','bit-set','line_index',
|
|
|
- 'definition','implementation','public','inheriting','final'
|
|
|
- ],
|
|
|
+ keywords: abapKeywords,
|
|
|
|
|
|
typeKeywords: [
|
|
|
'abap_bool','string','xstring','any','clike','csequence','numeric',
|
|
@@ -79,23 +87,24 @@ export const language = <ILanguage> {
|
|
|
[/@symbols/, { cases: { '@operators': 'operator',
|
|
|
'@default' : '' } } ],
|
|
|
|
|
|
- [/'/, { token: 'string.quote', bracket: '@open', next: '@string' } ],
|
|
|
- [/\|/, { token: 'string.quote', bracket: '@open', next: '@stringtemplate' } ],
|
|
|
+ [/'/, { token: 'string', bracket: '@open', next: '@string' } ],
|
|
|
+ [/\|/, { token: 'string', bracket: '@open', next: '@stringtemplate' } ],
|
|
|
|
|
|
[/\d+/, 'number'],
|
|
|
],
|
|
|
|
|
|
stringtemplate: [
|
|
|
[/[^\\\|]+/, 'string'],
|
|
|
- [/\|/, { token: 'string.quote', bracket: '@close', next: '@pop' } ]
|
|
|
+ [/\|/, { token: 'string', bracket: '@close', next: '@pop' } ]
|
|
|
],
|
|
|
|
|
|
string: [
|
|
|
[/[^\\']+/, 'string'],
|
|
|
- [/'/, { token: 'string.quote', bracket: '@close', next: '@pop' } ]
|
|
|
+ [/'/, { token: 'string', bracket: '@close', next: '@pop' } ]
|
|
|
],
|
|
|
|
|
|
whitespace: [
|
|
|
+ [/[ \t\r\n]+/, ''],
|
|
|
[/^\*.*$/, 'comment'],
|
|
|
[/\".*$/, 'comment'],
|
|
|
],
|