PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.6.0
Code Block Pro – Beautiful Syntax Highlighting v1.6.0
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
code-block-pro / build / shiki / languages / abap.tmLanguage.json

abap.tmLanguage.json in Code Block Pro – Beautiful Syntax Highlighting 1.6.0, at build/shiki/languages/abap.tmLanguage.json

362 lines 14.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "fileTypes": ["abap", "ABAP"],
3 "foldingStartMarker": "/\\*\\*|\\{\\s*$",
4 "foldingStopMarker": "\\*\\*/|^\\s*\\}",
5 "keyEquivalent": "^~A",
6 "name": "abap",
7 "patterns": [
8 {
9 "captures": {
10 "1": {
11 "name": "punctuation.definition.comment.abap"
12 }
13 },
14 "match": "^\\*.*\\n?",
15 "name": "comment.line.full.abap"
16 },
17 {
18 "captures": {
19 "1": {
20 "name": "punctuation.definition.comment.abap"
21 }
22 },
23 "match": "\".*\\n?",
24 "name": "comment.line.partial.abap"
25 },
26 {
27 "match": "(?<![^\\s])##.*?(?=([\\.:,\\s]))",
28 "name": "comment.line.pragma.abap"
29 },
30 {
31 "match": "(?i)(?<=(?:^|\\s|~|->|-|=>))([a-z_/][a-z_0-9/]*)(?=\\s+(?:=|\\+=|-=|\\*=|\\/=|&&=)\\s+)",
32 "name": "variable.other.abap"
33 },
34 {
35 "match": "\\b[0-9]+(\\b|\\.|,)",
36 "name": "constant.numeric.abap"
37 },
38 {
39 "match": "(?ix)(^|\\s+)((PUBLIC|PRIVATE|PROTECTED)\\sSECTION)(?=\\s+|:|\\.)",
40 "name": "storage.modifier.class.abap"
41 },
42 {
43 "begin": "(?<!\\\\)(\\|)(.*?)",
44 "end": "(?<!\\\\)(\\||(\\\\\\\\\\|))",
45 "name": "string.interpolated.abap",
46 "beginCaptures": {
47 "1": {
48 "name": "constant.character.escape.abap"
49 }
50 },
51 "endCaptures": {
52 "1": {
53 "name": "constant.character.escape.abap"
54 }
55 },
56 "patterns": [
57 {
58 "match": "({ )|( })",
59 "name": "constant.character.escape"
60 },
61 {
62 "match": "(?<={ ).*?(?= })",
63 "name": "variable.other.abap"
64 },
65 {
66 "match": "\\\\\\|",
67 "name": "constant.character.escape.abap"
68 }
69 ]
70 },
71 {
72 "begin": "'",
73 "end": "'",
74 "name": "string.quoted.single.abap",
75 "patterns": [
76 {
77 "match": "''",
78 "name": "constant.character.escape.abap"
79 }
80 ]
81 },
82 {
83 "begin": "`",
84 "end": "`",
85 "name": "string.quoted.single.abap",
86 "patterns": [
87 {
88 "match": "``",
89 "name": "constant.character.escape.abap"
90 }
91 ]
92 },
93 {
94 "begin": "(?i)^\\s*(class)\\s([a-z_/][a-z_0-9/]*)",
95 "beginCaptures": {
96 "1": {
97 "name": "storage.type.block.abap"
98 },
99 "2": {
100 "name": "entity.name.type.block.abap"
101 }
102 },
103 "end": "\\s*\\.\\s*\\n?",
104 "name": "meta.block.begin.implementation.abap",
105 "patterns": [
106 {
107 "match": "(?ix)(^|\\s+)(definition|implementation|public|inheriting\\s+from|final|deferred|abstract|shared\\s+memory\\s+enabled|(global|local)*\\s*friends|(create\\s+(public|protected|private))|for\\s+testing|risk\\s+level\\s+(critical|dangerous|harmless))|duration\\s(short|medium|long)(?=\\s+|\\.)",
108 "name": "storage.modifier.class.abap"
109 },
110 {
111 "begin": "(?=[A-Za-z_][A-Za-z0-9_]*)",
112 "contentName": "entity.name.type.block.abap",
113 "end": "(?![A-Za-z0-9_])",
114 "patterns": [
115 {
116 "include": "#generic_names"
117 }
118 ]
119 }
120 ]
121 },
122 {
123 "begin": "(?ix)^\\s*(method)\\s(?:([a-z_\\/][a-z_0-9\\/]*)~)?([a-z_\\/][a-z_0-9\\/]*)",
124 "beginCaptures": {
125 "1": {
126 "name": "storage.type.block.abap"
127 },
128 "2": {
129 "name": "entity.name.type.abap"
130 },
131 "3": {
132 "name": "entity.name.function.abap"
133 }
134 },
135 "end": "\\s*\\.\\s*\\n?",
136 "patterns": [
137 {
138 "match": "(?ix)(?<=^|\\s)(BY\\s+DATABASE(\\s+PROCEDURE|\\s+FUNCTION|\\s+GRAPH\\s+WORKSPACE))(?=\\s+|\\.)",
139 "name": "storage.modifier.method.abap"
140 },
141 {
142 "match": "(?ix)(?<=^|\\s)(FOR\\s+(HDB|LLANG))(?=\\s+|\\.)",
143 "name": "storage.modifier.method.abap"
144 },
145 {
146 "match": "(?ix)(?<=\\s)(OPTIONS\\s+(READ-ONLY|DETERMINISTIC|SUPPRESS\\s+SYNTAX\\s+ERRORS))(?=\\s+|\\.)",
147 "name": "storage.modifier.method.abap"
148 },
149 {
150 "match": "(?ix)(?<=^|\\s)(LANGUAGE\\s+(SQLSCRIPT|SQL|GRAPH))(?=\\s+|\\.)",
151 "name": "storage.modifier.method.abap"
152 },
153 {
154 "match": "(?ix)(?<=\\s)(USING)\\s+([a-z_\\/][a-z_0-9\\/=\\>]*)+(?=\\s+|\\.)",
155 "captures": {
156 "1": {
157 "name": "storage.modifier.method.abap"
158 }
159 }
160 },
161 {
162 "begin": "(?=[A-Za-z_][A-Za-z0-9_]*)",
163 "end": "(?![A-Za-z0-9_])",
164 "patterns": [
165 {
166 "include": "#generic_names"
167 }
168 ]
169 }
170 ]
171 },
172 {
173 "begin": "(?ix)^\\s*(INTERFACE)\\s([a-z_\\/][a-z_0-9\\/]*)",
174 "beginCaptures": {
175 "1": {
176 "name": "storage.type.block.abap"
177 },
178 "2": {
179 "name": "entity.name.type.abap"
180 }
181 },
182 "end": "\\s*\\.\\s*\\n?",
183 "patterns": [
184 {
185 "match": "(?ix)(?<=^|\\s)(DEFERRED|PUBLIC)(?=\\s+|\\.)",
186 "name": "storage.modifier.method.abap"
187 }
188 ]
189 },
190 {
191 "begin": "(?ix)^\\s*(FORM)\\s([a-z_\\/][a-z_0-9\\/]*)",
192 "beginCaptures": {
193 "1": {
194 "name": "storage.type.block.abap"
195 },
196 "2": {
197 "name": "entity.name.type.abap"
198 }
199 },
200 "end": "\\s*\\.\\s*\\n?",
201 "patterns": [
202 {
203 "match": "(?ix)(?<=^|\\s)(USING|TABLES|CHANGING|RAISING)(?=\\s+|\\.)",
204 "name": "storage.modifier.form.abap"
205 },
206 {
207 "include": "#abaptypes"
208 }
209 ]
210 },
211 {
212 "match": "(?i)(endclass|endmethod|endform|endinterface)",
213 "name": "storage.type.block.end.abap"
214 },
215 {
216 "match": "(?i)(<[A-Za-z_][A-Za-z0-9_]*>)",
217 "name": "variable.other.field.symbol.abap"
218 },
219 {
220 "include": "#keywords"
221 },
222 {
223 "include": "#abap_constants"
224 },
225 {
226 "include": "#reserved_names"
227 },
228 {
229 "include": "#operators"
230 },
231 {
232 "include": "#builtin_functions"
233 },
234 {
235 "include": "#abaptypes"
236 },
237 {
238 "include": "#system_fields"
239 }
240 ],
241 "repository": {
242 "abap_constants": {
243 "match": "(?ix)(?<=\\s)(initial|null|space|abap_true|abap_false|table_line)(?=\\s|\\.|,)",
244 "name": "constant.language.abap"
245 },
246 "reserved_names": {
247 "match": "(?ix)(?<=\\s)(me|super)(?=\\s|\\.|,|->)",
248 "name": "constant.language.abap"
249 },
250 "abaptypes": {
251 "patterns": [
252 {
253 "match": "(?ix)\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|c|n|i|p|f|d|t|x)(?=\\s|\\.|,)",
254 "name": "support.type.abap"
255 },
256 {
257 "match": "(?ix)\\s(TYPE|REF|TO|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=\\s|\\.|,)",
258 "name": "keyword.control.simple.abap"
259 }
260 ]
261 },
262 "arithmetic_operator": {
263 "match": "(?i)(?<=\\s)(\\+|\\-|\\*|\\*\\*|/|%|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\s)",
264 "name": "keyword.control.simple.abap"
265 },
266 "comparison_operator": {
267 "match": "(?i)(?<=\\s)(<|>|<\\=|>\\=|\\=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|o|z|m)(?=\\s)",
268 "name": "keyword.control.simple.abap"
269 },
270 "control_keywords": {
271 "match": "(?ix)(^|\\s)(\n\t at|case|catch|continue|do|elseif|else|endat|endcase|enddo|endif|\n\t endloop|endon|if|loop|on|raise|try)(?=\\s|\\.|:)",
272 "name": "keyword.control.flow.abap"
273 },
274 "generic_names": {
275 "match": "[A-Za-z_][A-Za-z0-9_]*"
276 },
277 "keywords": {
278 "patterns": [
279 {
280 "include": "#main_keywords"
281 },
282 {
283 "include": "#text_symbols"
284 },
285 {
286 "include": "#control_keywords"
287 },
288 {
289 "include": "#keywords_followed_by_braces"
290 }
291 ]
292 },
293 "logical_operator": {
294 "match": "(?i)(?<=\\s)(not|or|and)(?=\\s)",
295 "name": "keyword.control.simple.abap"
296 },
297 "system_fields": {
298 "match": "(?ix)\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=\\.|\\s)",
299 "captures": {
300 "1": {
301 "name": "variable.language.abap"
302 },
303 "2": {
304 "name": "variable.language.abap"
305 }
306 }
307 },
308 "main_keywords": {
309 "match": "(?ix)(?<=^|\\s)(\n\t abstract|access|add|add-corresponding|adjacent|alias|aliases|all|amdp|append|appending|ascending|as|assert|assign|assigned|assigning|association|authority-check|\n\t back|badi|base|begin|between|binary|blanks|block|bound|break-point|by|by\\s+database|byte|\n\t call|calling|cast|casting|cds\\s+session|changing|check|checkbox|class-data|class-events|class-method|class-methods|class-pool|cleanup|clear|client|clients|close|cnt|collect|commit|comment|cond|character|\n\t corresponding|communication|comparing|component|components|compute|concatenate|condense|constants|conv|count|\n\t controls|convert|create|currency|current|\n\t data|database|ddl|decimals|default|define|deferred|delete|descending|describe|destination|detail|display|divide|divide-corresponding|display-mode|distinct|duplicates|\n\t deleting|\n\t editor-call|empty|end|endenhancement|endexec|endfunction|ending|endmodule|end-of-definition|end-of-page|end-of-selection|end-test-injection|end-test-seam|exit-command|extension|\n\t endprovide|endselect|entries|endtry|endwhile|enhancement|enum|event|events|excluding|exec|exit|export|\n\t exporting|extract|exception|exceptions|\n\t field-symbols|field-groups|field|first|fetch|fields|format|frame|free|from|function|find|for|found|function-pool|\n\t generate|get|group|\n\t handle|handler|hide|hashed|header|help-request|\n\t include|import|importing|index|infotypes|initial|initialization|\n\t\tid|implemented|ignoring|is|in|inner|interface|interfaces|interface-pool|intervals|init|input|insert|instance|into|\n\t\tjoin|\n\t\tkey|\n\t language|language\\s+graph|language\\s+sql|left-justified|leave|let|like|line|lines|line-count|line-size|listbox|list-processing|load|local|log-point|length|left|leading|lower|\n\t matchcode|memory|method|mesh|message|message-id|methods|mode|modify|module|move|move-corresponding|multiply|multiply-corresponding|match|modif|\n\t\tnew|new-line|new-page|new-section|next|no|no-display|no-gap|no-gaps|no-sign|no-zero|non-unique|number|\n\t occurrence|object|obligatory|of|order|output|overlay|optional|others|occurrences|occurs|offset|options|\n\t pack|parameter|parameters|partially|perform|pf-status|places|position|preferred|primary|print-control|private|privileged|program|protected|provide|public|pushbutton|put|\n\t radiobutton\\s+group|raising|range|ranges|receive|receiving|redefinition|reduce|reference|refresh|regex|reject|results|requested|\n\t ref|replace|report|required|reserve|respecting|restore|result\\s+xml|result\\s+\\(|return|returning|right|right-justified|rollback|read|read-only|rp-provide-from-last|run|\n\t scan|screen|scroll|search|select|select-options|selection-screen|set|stamp|state|source|subkey|\n\t seconds|selection-table|separated|set|shift|single|skip|sort|sorted|split|stable|standard|stamp|starting|start-of-selection|sum|subscreen|subtract-corresponding|statics|step|stop|structure|submatches|submit|subtract|summary|supplied|suppress|section|syntax-check|syntax-trace|system-call|switch|\n\t tabbed|tables|table|task|testing|test-seam|test-injection|textpool|then|time|times|title|titlebar|to|top-of-page|trailing|transaction|transfer|transformation|translate|transporting|types|type|type-pool|type-pools|\n\t unassign|unique|uline|union|unpack|until|update|upper|using|user-command|\n\t value|value-request|visible|\n\t wait|when|while|window|write|where|with|work|workspace|\n\t\txml)(?=\\s|\\.|:|,)",
310 "name": "keyword.control.simple.abap"
311 },
312 "text_symbols": {
313 "match": "(?ix)(?<=^|\\s)(text)-([A-Z0-9]{1,3})(?=\\s|\\.|:|,)",
314 "captures": {
315 "1": {
316 "name": "keyword.control.simple.abap"
317 },
318 "2": {
319 "name": "constant.numeric.abap"
320 }
321 }
322 },
323 "keywords_followed_by_braces": {
324 "match": "(?ix)\\b(data|value|field-symbol)\\((<?[a-z_\\/][a-z_0-9\\/]*>?)\\)",
325 "captures": {
326 "1": {
327 "name": "keyword.control.simple.abap"
328 },
329 "2": {
330 "name": "variable.other.abap"
331 }
332 }
333 },
334 "operators": {
335 "patterns": [
336 {
337 "include": "#other_operator"
338 },
339 {
340 "include": "#arithmetic_operator"
341 },
342 {
343 "include": "#comparison_operator"
344 },
345 {
346 "include": "#logical_operator"
347 }
348 ]
349 },
350 "other_operator": {
351 "match": "(?<=\\s)(&&|\\?=|\\+=|-=|\\/=|\\*=|&&=)(?=\\s)",
352 "name": "keyword.control.simple.abap"
353 },
354 "builtin_functions": {
355 "match": "(?ix)(?<=\\s)(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)(?=\\()",
356 "name": "entity.name.function.builtin.abap"
357 }
358 },
359 "scopeName": "source.abap",
360 "uuid": "0357FFB4-EFFF-4DE9-8371-B0F9C8DF1B21"
361 }
362