github-linguist 6.4.1 → 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +5 -5
  2. data/bin/{linguist → github-linguist} +0 -0
  3. data/grammars/source.abap.json +35 -6
  4. data/grammars/source.apl.json +4 -8
  5. data/grammars/source.ballerina.json +82 -3
  6. data/grammars/source.bdf.json +419 -0
  7. data/grammars/source.c++.json +25 -3
  8. data/grammars/source.c.json +6 -3
  9. data/grammars/source.chapel.json +3 -3
  10. data/grammars/source.coq.json +2 -2
  11. data/grammars/source.cs.json +83 -73
  12. data/grammars/source.csound.json +1 -1
  13. data/grammars/source.dart.json +1 -1
  14. data/grammars/source.elixir.json +112 -137
  15. data/grammars/source.emacs.lisp.json +179 -4
  16. data/grammars/source.figctrl.json +252 -0
  17. data/grammars/source.figfont.json +121 -0
  18. data/grammars/source.fontdir.json +99 -0
  19. data/grammars/source.fstar.json +439 -0
  20. data/grammars/source.hx.json +27 -9
  21. data/grammars/source.j.json +260 -0
  22. data/grammars/source.julia.json +24 -12
  23. data/grammars/source.lisp.json +3 -3
  24. data/grammars/source.mupad.json +1 -1
  25. data/grammars/source.pony.json +3 -3
  26. data/grammars/source.powershell.json +2 -2
  27. data/grammars/source.protobuf.json +87 -5
  28. data/grammars/source.purescript.json +5 -2
  29. data/grammars/source.python.json +17 -12
  30. data/grammars/source.rascal.json +0 -1
  31. data/grammars/source.reg.json +159 -0
  32. data/grammars/source.slice.json +2755 -0
  33. data/grammars/source.solidity.json +2 -2
  34. data/grammars/source.ts.json +225 -132
  35. data/grammars/source.tsx.json +235 -142
  36. data/grammars/source.viml.json +4 -4
  37. data/grammars/source.xlfd.json +462 -0
  38. data/grammars/source.yasnippet.json +387 -0
  39. data/grammars/text.elixir.json +17 -5
  40. data/grammars/text.html.basic.json +622 -2264
  41. data/grammars/text.html.elixir.json +10 -1
  42. data/grammars/text.html.php.blade.json +7 -3
  43. data/grammars/version +1 -0
  44. data/lib/linguist.rb +2 -0
  45. data/lib/linguist/VERSION +1 -1
  46. data/lib/linguist/generated.rb +14 -1
  47. data/lib/linguist/heuristics.rb +77 -468
  48. data/lib/linguist/heuristics.yml +404 -0
  49. data/lib/linguist/languages.json +1 -1
  50. data/lib/linguist/languages.yml +86 -6
  51. data/lib/linguist/samples.json +2624 -483
  52. data/lib/linguist/strategy/xml.rb +30 -0
  53. metadata +20 -7
@@ -67,7 +67,7 @@
67
67
  {
68
68
  "name": "meta.declaration.instance.purescript",
69
69
  "contentName": "meta.type-signature.purescript",
70
- "begin": "\\b(instance)(?!')\\b",
70
+ "begin": "\\b(else\\s+)?(instance)(?!')\\b",
71
71
  "end": "\\b(where)\\b|$",
72
72
  "patterns": [
73
73
  {
@@ -77,6 +77,9 @@
77
77
  "beginCaptures": {
78
78
  "1": {
79
79
  "name": "keyword.other.purescript"
80
+ },
81
+ "2": {
82
+ "name": "keyword.other.purescript"
80
83
  }
81
84
  },
82
85
  "endCaptures": {
@@ -281,7 +284,7 @@
281
284
  },
282
285
  {
283
286
  "name": "keyword.control.purescript",
284
- "match": "\\b(do|if|then|else|case|of|let|in)(?!')\\b"
287
+ "match": "\\b(do|ado|if|then|else|case|of|let|in)(?!')\\b"
285
288
  },
286
289
  {
287
290
  "name": "constant.numeric.float.purescript",
@@ -2462,16 +2462,17 @@
2462
2462
  },
2463
2463
  "function-arguments": {
2464
2464
  "contentName": "meta.function-call.arguments.python",
2465
- "begin": "(?x)\n (?:\n (\\()\n (?:\\s*(\\*\\*|\\*))?\n )\n",
2465
+ "begin": "(\\()",
2466
2466
  "end": "(?=\\))(?!\\)\\s*\\()",
2467
2467
  "patterns": [
2468
2468
  {
2469
- "match": "(?x)\n (?:\n (,)\n (?:\\s*(\\*\\*|\\*))?\n )\n",
2469
+ "name": "punctuation.separator.arguments.python",
2470
+ "match": "(,)"
2471
+ },
2472
+ {
2473
+ "match": "(?x)\n (?:(?\u003c=[,(])|^) \\s* (\\*{1,2})\n",
2470
2474
  "captures": {
2471
2475
  "1": {
2472
- "name": "punctuation.separator.arguments.python"
2473
- },
2474
- "2": {
2475
2476
  "name": "keyword.operator.unpacking.arguments.python"
2476
2477
  }
2477
2478
  }
@@ -2515,9 +2516,6 @@
2515
2516
  "beginCaptures": {
2516
2517
  "1": {
2517
2518
  "name": "punctuation.definition.arguments.begin.python"
2518
- },
2519
- "2": {
2520
- "name": "keyword.operator.unpacking.arguments.python"
2521
2519
  }
2522
2520
  }
2523
2521
  },
@@ -2604,8 +2602,15 @@
2604
2602
  "match": "-\u003e"
2605
2603
  },
2606
2604
  "illegal-names": {
2607
- "name": "keyword.control.flow.python",
2608
- "match": "(?x)\n \\b(\n and | as | assert | async | await | break | class | continue | def\n | del | elif | else | except | exec | finally | for | from | global\n | if | import | in | is | (?\u003c=\\.)lambda | lambda(?=\\s*[\\.=])\n | nonlocal | not | or | pass | raise | return | try | while | with\n | yield\n )\\b\n"
2605
+ "match": "(?x)\n \\b(?:\n (\n and | as | assert | async | await | break | class | continue | def\n | del | elif | else | except | finally | for | from | global\n | if | in | is | (?\u003c=\\.)lambda | lambda(?=\\s*[\\.=])\n | nonlocal | not | or | pass | raise | return | try | while | with\n | yield\n ) | (\n import\n )\n )\\b\n",
2606
+ "captures": {
2607
+ "1": {
2608
+ "name": "keyword.control.flow.python"
2609
+ },
2610
+ "2": {
2611
+ "name": "keyword.control.import.python"
2612
+ }
2613
+ }
2609
2614
  },
2610
2615
  "illegal-object-name": {
2611
2616
  "name": "keyword.illegal.name.python",
@@ -2630,7 +2635,7 @@
2630
2635
  "import": {
2631
2636
  "patterns": [
2632
2637
  {
2633
- "match": "(?x)\n \\s* \\b(from)\\b \\s*(\\.+)\\s* (import)?\n",
2638
+ "match": "(?x)\n \\s* \\b(from) \\s*(\\.+)\\s* (import\\b)?\n",
2634
2639
  "captures": {
2635
2640
  "1": {
2636
2641
  "name": "keyword.control.import.python"
@@ -4865,7 +4870,7 @@
4865
4870
  },
4866
4871
  "string-formatting": {
4867
4872
  "name": "meta.format.percent.python",
4868
- "match": "(?x)\n (\n % (\\([\\w\\s]*\\))?\n [-+#0 ]*\n (\\d+|\\*)? (\\.(\\d+|\\*))?\n ([hlL])?\n [diouxXeEfFgGcrsa%]\n )\n",
4873
+ "match": "(?x)\n (\n % (\\([\\w\\s]*\\))?\n [-+#0 ]*\n (\\d+|\\*)? (\\.(\\d+|\\*))?\n ([hlL])?\n [diouxXeEfFgGcrsab%]\n )\n",
4869
4874
  "captures": {
4870
4875
  "1": {
4871
4876
  "name": "constant.character.format.placeholder.other.python"
@@ -69,7 +69,6 @@
69
69
  "patterns": [
70
70
  {
71
71
  "name": "string.regexp.rascal",
72
- "begin": "/(?!/|\\*)",
73
72
  "end": "/([dims]*)",
74
73
  "patterns": [
75
74
  {
@@ -0,0 +1,159 @@
1
+ {
2
+ "name": "REG (Windows Registry)",
3
+ "scopeName": "source.reg",
4
+ "patterns": [
5
+ {
6
+ "name": "comment.reg",
7
+ "match": ";.*$"
8
+ },
9
+ {
10
+ "name": "meta.doctype.reg",
11
+ "match": "Windows Registry Editor Version \\d.\\d\\d"
12
+ },
13
+ {
14
+ "match": "^((@)|\\\".*\\\")(=)((\\-)|\\s*(0|1)\\s*$|)",
15
+ "captures": {
16
+ "2": {
17
+ "name": "keyword.reg"
18
+ },
19
+ "3": {
20
+ "name": "punctuation.separator.key-value.reg"
21
+ },
22
+ "5": {
23
+ "name": "keyword.operator.reg"
24
+ },
25
+ "6": {
26
+ "name": "language.constant.boolean.reg"
27
+ }
28
+ }
29
+ },
30
+ {
31
+ "match": "(\\\\)$",
32
+ "captures": {
33
+ "1": {
34
+ "name": "keyword.reg"
35
+ }
36
+ }
37
+ },
38
+ {
39
+ "name": "string.quoted.double.reg",
40
+ "begin": "\\\"",
41
+ "end": "\\\"",
42
+ "patterns": [
43
+ {
44
+ "name": "constant.character.escape.reg",
45
+ "match": "\\\\\\\\"
46
+ }
47
+ ],
48
+ "beginCaptures": {
49
+ "0": {
50
+ "name": "punctuation.definition.string.begin.reg"
51
+ }
52
+ },
53
+ "endCaptures": {
54
+ "0": {
55
+ "name": "punctuation.definition.string.end.reg"
56
+ }
57
+ }
58
+ },
59
+ {
60
+ "match": "(hex)(|\\(([ABab0-9])\\))(:)",
61
+ "captures": {
62
+ "1": {
63
+ "name": "storage.type.reg"
64
+ },
65
+ "3": {
66
+ "name": "constant.numeric.reg"
67
+ },
68
+ "4": {
69
+ "name": "keyword.operator.reg"
70
+ }
71
+ }
72
+ },
73
+ {
74
+ "match": "(dword)(:)([ABCDEFabcdef0-9]{1,8})\\s*$",
75
+ "captures": {
76
+ "1": {
77
+ "name": "storage.type.reg"
78
+ },
79
+ "2": {
80
+ "name": "keyword.operator.reg"
81
+ },
82
+ "3": {
83
+ "name": "constant.numeric.reg"
84
+ }
85
+ }
86
+ },
87
+ {
88
+ "name": ".meta.section.key-path.reg",
89
+ "begin": "(\\[)(\\s*\\n)*(-){0,1}(\\s*\\n)*",
90
+ "end": "\\]",
91
+ "patterns": [
92
+ {
93
+ "match": "(HKEY_CURRENT_CONFIG|HKCC)\\\\(Software|System)",
94
+ "captures": {
95
+ "1": {
96
+ "name": "keyword.other.hive-name.reg"
97
+ },
98
+ "2": {
99
+ "name": "language.constant.standard-key.reg"
100
+ }
101
+ }
102
+ },
103
+ {
104
+ "match": "(HKEY_CURRENT_USER|HKCU)\\\\(AppEvents|AppXBackupContentType|Console|Control Panel|Environment|EUDC|Keyboard Layout|Network|Printers|Software|System|Volatile Environment)",
105
+ "captures": {
106
+ "1": {
107
+ "name": "keyword.other.hive-name.reg"
108
+ },
109
+ "2": {
110
+ "name": "language.constant.standard-key.reg"
111
+ }
112
+ }
113
+ },
114
+ {
115
+ "match": "(HKEY_LOCAL_MACHINE|HKLM)\\\\(BCD00000000|DRIVERS|HARDWARE|SAM|SECURITY|SOFTWARE|SYSTEM)",
116
+ "captures": {
117
+ "1": {
118
+ "name": "keyword.other.hive-name.reg"
119
+ },
120
+ "2": {
121
+ "name": "language.constant.standard-key.reg"
122
+ }
123
+ }
124
+ },
125
+ {
126
+ "match": "(HKEY_USERS|HKU)\\\\(.DEFAULT)\\\\(AppEvents|AppXBackupContentType|Console|Control Panel|Environment|EUDC|Keyboard Layout|Network|Printers|Software|System|Volatile Environment)",
127
+ "captures": {
128
+ "1": {
129
+ "name": "keyword.other.hive-name.reg"
130
+ },
131
+ "2": {
132
+ "name": "language.constant.standard-key.reg"
133
+ },
134
+ "3": {
135
+ "name": "language.constant.standard-key.reg"
136
+ }
137
+ }
138
+ },
139
+ {
140
+ "name": "keyword.other.hive-name.reg",
141
+ "match": "(HKEY_CLASSES_ROOT|HKCR|HKEY_CURRENT_CONFIG|HKCC|HKEY_CURRENT_USER|HKCU|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKLM|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKU)"
142
+ }
143
+ ],
144
+ "beginCaptures": {
145
+ "1": {
146
+ "name": "meta.brace.square.reg"
147
+ },
148
+ "3": {
149
+ "name": "keyword.operator.reg"
150
+ }
151
+ },
152
+ "endCaptures": {
153
+ "0": {
154
+ "name": "meta.brace.square.reg"
155
+ }
156
+ }
157
+ }
158
+ ]
159
+ }
@@ -0,0 +1,2755 @@
1
+ {
2
+ "name": "Slice",
3
+ "scopeName": "source.slice",
4
+ "patterns": [
5
+ {
6
+ "include": "#comment"
7
+ },
8
+ {
9
+ "include": "#preprocessor"
10
+ },
11
+ {
12
+ "include": "#metadata.global"
13
+ },
14
+ {
15
+ "include": "#storage.module"
16
+ }
17
+ ],
18
+ "repository": {
19
+ "annotation": {
20
+ "patterns": [
21
+ {
22
+ "name": "storage.type.annotation.slice",
23
+ "match": "(@)\\S*\\b",
24
+ "captures": {
25
+ "1": {
26
+ "name": "punctuation.definition.annotation.slice"
27
+ }
28
+ }
29
+ }
30
+ ]
31
+ },
32
+ "comment": {
33
+ "patterns": [
34
+ {
35
+ "include": "#comment.line"
36
+ },
37
+ {
38
+ "include": "#comment.block"
39
+ }
40
+ ]
41
+ },
42
+ "comment.block": {
43
+ "patterns": [
44
+ {
45
+ "name": "comment.block.slice",
46
+ "contentName": "text.slice",
47
+ "begin": "\\/\\*",
48
+ "end": "\\*\\/",
49
+ "patterns": [
50
+ {
51
+ "include": "#annotation"
52
+ },
53
+ {
54
+ "include": "#link"
55
+ },
56
+ {
57
+ "include": "#line.continuation"
58
+ }
59
+ ],
60
+ "beginCaptures": {
61
+ "0": {
62
+ "name": "punctuation.definition.comment.block.begin.slice"
63
+ }
64
+ },
65
+ "endCaptures": {
66
+ "0": {
67
+ "name": "punctuation.definition.comment.block.end.slice"
68
+ }
69
+ }
70
+ }
71
+ ]
72
+ },
73
+ "comment.line": {
74
+ "patterns": [
75
+ {
76
+ "name": "comment.line.slice",
77
+ "contentName": "text.slice",
78
+ "begin": "\\/\\/",
79
+ "end": "$",
80
+ "patterns": [
81
+ {
82
+ "include": "#annotation"
83
+ },
84
+ {
85
+ "include": "#link"
86
+ },
87
+ {
88
+ "include": "#line.continuation"
89
+ }
90
+ ],
91
+ "beginCaptures": {
92
+ "0": {
93
+ "name": "punctuation.definition.comment.line.begin.slice"
94
+ }
95
+ }
96
+ }
97
+ ]
98
+ },
99
+ "constant": {
100
+ "patterns": [
101
+ {
102
+ "include": "#constant.boolean"
103
+ },
104
+ {
105
+ "include": "#constant.string"
106
+ },
107
+ {
108
+ "include": "#constant.numeric.float"
109
+ },
110
+ {
111
+ "include": "#constant.numeric.hex"
112
+ },
113
+ {
114
+ "include": "#constant.numeric.oct"
115
+ },
116
+ {
117
+ "include": "#constant.numeric.dec"
118
+ }
119
+ ]
120
+ },
121
+ "constant.boolean": {
122
+ "patterns": [
123
+ {
124
+ "match": "\\b(?:(true)|(false))\\b",
125
+ "captures": {
126
+ "0": {
127
+ "name": "constant.langauge.slice"
128
+ },
129
+ "1": {
130
+ "name": "constant.boolean.true.slice"
131
+ },
132
+ "2": {
133
+ "name": "constant.boolean.false.slice"
134
+ }
135
+ }
136
+ }
137
+ ]
138
+ },
139
+ "constant.numeric.dec": {
140
+ "patterns": [
141
+ {
142
+ "name": "constant.numeric.integer.slice",
143
+ "match": "(-|\\+)?\\b(?:0|[1-9]\\d*)\\b",
144
+ "captures": {
145
+ "1": {
146
+ "name": "punctuation.definition.numeric.sign.slice"
147
+ }
148
+ }
149
+ }
150
+ ]
151
+ },
152
+ "constant.numeric.float": {
153
+ "patterns": [
154
+ {
155
+ "name": "constant.numeric.float.slice",
156
+ "match": "(-|\\+)?(?:\\d+(\\.)\\d*|\\d*(\\.)\\d+|\\d+(?=e|E|f|F))(?:(e|E)-?\\d+)?(f|F)?",
157
+ "captures": {
158
+ "1": {
159
+ "name": "punctuation.numeric.sign.slice"
160
+ },
161
+ "2": {
162
+ "name": "punctuation.separator.decimal.slice"
163
+ },
164
+ "3": {
165
+ "name": "punctuation.separator.decimal.slice"
166
+ },
167
+ "4": {
168
+ "name": "punctuation.numeric.exponent.slice"
169
+ },
170
+ "5": {
171
+ "name": "punctuation.definition.float.slice"
172
+ }
173
+ }
174
+ }
175
+ ]
176
+ },
177
+ "constant.numeric.hex": {
178
+ "patterns": [
179
+ {
180
+ "name": "constant.numeric.hex.slice",
181
+ "match": "(-|\\+)?\\b(0x)[\\da-fA-F]+\\b",
182
+ "captures": {
183
+ "1": {
184
+ "name": "punctuation.definition.numeric.sign.slice"
185
+ },
186
+ "2": {
187
+ "name": "punctuation.definition.numeric.hex.slice"
188
+ }
189
+ }
190
+ }
191
+ ]
192
+ },
193
+ "constant.numeric.oct": {
194
+ "patterns": [
195
+ {
196
+ "name": "constant.numeric.octal.slice",
197
+ "match": "(-|\\+)?\\b(0)(\\d+)\\b",
198
+ "captures": {
199
+ "1": {
200
+ "name": "punctuation.definition.numeric.sign.slice"
201
+ },
202
+ "2": {
203
+ "name": "punctuation.definition.numeric.oct.slice"
204
+ },
205
+ "3": {
206
+ "patterns": [
207
+ {
208
+ "name": "invalid.illegal.oct.slice",
209
+ "match": "[8-9]"
210
+ }
211
+ ]
212
+ }
213
+ }
214
+ }
215
+ ]
216
+ },
217
+ "constant.string": {
218
+ "patterns": [
219
+ {
220
+ "name": "string.quoted.double.slice",
221
+ "begin": "\"",
222
+ "end": "(\")|$",
223
+ "patterns": [
224
+ {
225
+ "match": "\\\\."
226
+ },
227
+ {
228
+ "include": "#line.continuation"
229
+ }
230
+ ],
231
+ "beginCaptures": {
232
+ "0": {
233
+ "name": "punctuation.definition.string.begin.slice"
234
+ }
235
+ },
236
+ "endCaptures": {
237
+ "1": {
238
+ "name": "punctuation.definition.string.end.slice"
239
+ },
240
+ "2": {
241
+ "name": "invalid.illegal.mismatched-quotes.slice"
242
+ }
243
+ }
244
+ }
245
+ ]
246
+ },
247
+ "invalid": {
248
+ "patterns": [
249
+ {
250
+ "name": "invalid.illegal",
251
+ "match": "\\S"
252
+ }
253
+ ]
254
+ },
255
+ "line.continuation": {
256
+ "patterns": [
257
+ {
258
+ "begin": "(\\\\)\\s*$",
259
+ "end": "^",
260
+ "beginCaptures": {
261
+ "1": {
262
+ "name": "punctuation.separator.continuation.backslash.slice"
263
+ }
264
+ }
265
+ }
266
+ ]
267
+ },
268
+ "link": {
269
+ "patterns": [
270
+ {
271
+ "name": "variable.link.slice",
272
+ "match": "(\\b\\S*)?(#)\\S*\\b",
273
+ "captures": {
274
+ "1": {
275
+ "name": "punctuation.definition.link.slice"
276
+ }
277
+ }
278
+ }
279
+ ]
280
+ },
281
+ "metadata": {
282
+ "patterns": [
283
+ {
284
+ "include": "#metadata.global"
285
+ },
286
+ {
287
+ "include": "#metadata.local"
288
+ }
289
+ ]
290
+ },
291
+ "metadata.content": {
292
+ "patterns": [
293
+ {
294
+ "include": "#standard"
295
+ },
296
+ {
297
+ "begin": "(\")",
298
+ "end": "(?=\\])|(?\u003c=,)",
299
+ "patterns": [
300
+ {
301
+ "include": "#line.continuation"
302
+ },
303
+ {
304
+ "name": "string.quoted.double.slice",
305
+ "match": "((?:[^\\\\\"]|\\\\.)+)",
306
+ "captures": {
307
+ "1": {
308
+ "patterns": [
309
+ {
310
+ "include": "#metadata.identifier"
311
+ }
312
+ ]
313
+ }
314
+ }
315
+ },
316
+ {
317
+ "begin": "(\")",
318
+ "end": "(?=\\])|(,)",
319
+ "patterns": [
320
+ {
321
+ "include": "#standard"
322
+ }
323
+ ],
324
+ "beginCaptures": {
325
+ "0": {
326
+ "name": "string.quoted.double.slice"
327
+ },
328
+ "1": {
329
+ "name": "punctuation.definition.string.end.slice"
330
+ }
331
+ },
332
+ "endCaptures": {
333
+ "1": {
334
+ "name": "punctuation.separator.metadata.slice"
335
+ }
336
+ }
337
+ }
338
+ ],
339
+ "beginCaptures": {
340
+ "0": {
341
+ "name": "string.quoted.double.slice"
342
+ },
343
+ "1": {
344
+ "name": "punctuation.definition.string.begin.slice"
345
+ }
346
+ }
347
+ }
348
+ ]
349
+ },
350
+ "metadata.global": {
351
+ "patterns": [
352
+ {
353
+ "name": "meta.metadata.global.slice",
354
+ "begin": "\\[\\[",
355
+ "end": "\\]\\]",
356
+ "patterns": [
357
+ {
358
+ "include": "#metadata.content"
359
+ }
360
+ ],
361
+ "beginCaptures": {
362
+ "0": {
363
+ "name": "punctuation.definition.metadata.global.begin.slice"
364
+ }
365
+ },
366
+ "endCaptures": {
367
+ "0": {
368
+ "name": "punctuation.definition.metadata.global.end.slice"
369
+ }
370
+ }
371
+ }
372
+ ]
373
+ },
374
+ "metadata.identifier": {
375
+ "patterns": [
376
+ {
377
+ "name": "entity.metadata.directive.slice",
378
+ "match": "\\S+"
379
+ }
380
+ ]
381
+ },
382
+ "metadata.local": {
383
+ "patterns": [
384
+ {
385
+ "name": "meta.metadata.local.slice",
386
+ "begin": "\\[",
387
+ "end": "\\]",
388
+ "patterns": [
389
+ {
390
+ "include": "#metadata.content"
391
+ }
392
+ ],
393
+ "beginCaptures": {
394
+ "0": {
395
+ "name": "punctuation.definition.metadata.local.begin.slice"
396
+ }
397
+ },
398
+ "endCaptures": {
399
+ "0": {
400
+ "name": "punctuation.definition.metadata.local.end.slice"
401
+ }
402
+ }
403
+ }
404
+ ]
405
+ },
406
+ "preprocessor": {
407
+ "patterns": [
408
+ {
409
+ "include": "#preprocessor.if"
410
+ },
411
+ {
412
+ "include": "#preprocessor.ifdef"
413
+ },
414
+ {
415
+ "include": "#preprocessor.ifndef"
416
+ },
417
+ {
418
+ "include": "#preprocessor.elif"
419
+ },
420
+ {
421
+ "include": "#preprocessor.else"
422
+ },
423
+ {
424
+ "include": "#preprocessor.endif"
425
+ },
426
+ {
427
+ "include": "#preprocessor.define"
428
+ },
429
+ {
430
+ "include": "#preprocessor.undef"
431
+ },
432
+ {
433
+ "include": "#preprocessor.include"
434
+ },
435
+ {
436
+ "include": "#preprocessor.pragma"
437
+ },
438
+ {
439
+ "include": "#preprocessor.line"
440
+ },
441
+ {
442
+ "include": "#preprocessor.error"
443
+ },
444
+ {
445
+ "include": "#preprocessor.null"
446
+ }
447
+ ]
448
+ },
449
+ "preprocessor.define": {
450
+ "patterns": [
451
+ {
452
+ "name": "meta.preprocessor.define.slice",
453
+ "begin": "(#)\\s*define\\b",
454
+ "end": "$",
455
+ "patterns": [
456
+ {
457
+ "include": "#standardP"
458
+ },
459
+ {
460
+ "begin": "\\b(\\w+)((\\())",
461
+ "end": "$",
462
+ "patterns": [
463
+ {
464
+ "include": "#standardP"
465
+ },
466
+ {
467
+ "begin": "\\b\\w+\\b",
468
+ "end": "(?=\\))|(,)|($)",
469
+ "patterns": [
470
+ {
471
+ "include": "#standardP"
472
+ }
473
+ ],
474
+ "beginCaptures": {
475
+ "0": {
476
+ "patterns": [
477
+ {
478
+ "include": "#preprocessor.identifier"
479
+ }
480
+ ]
481
+ }
482
+ },
483
+ "endCaptures": {
484
+ "1": {
485
+ "name": "punctuation.separator.parameter.preprocessor.slice"
486
+ },
487
+ "2": {
488
+ "name": "invalid.mismatched.parenthesis.slice"
489
+ }
490
+ }
491
+ },
492
+ {
493
+ "begin": "\\b\\w+\\b",
494
+ "end": "(?=\\))|((,))|($)",
495
+ "patterns": [
496
+ {
497
+ "include": "#standardP"
498
+ }
499
+ ],
500
+ "beginCaptures": {
501
+ "0": {
502
+ "name": "punctuation.variable.parameter.preprocessor.slice"
503
+ }
504
+ },
505
+ "endCaptures": {
506
+ "1": {
507
+ "name": "punctuation.separator.parameter.preprocessor.slice"
508
+ },
509
+ "2": {
510
+ "name": "invalid.trailing-comma.slice"
511
+ },
512
+ "3": {
513
+ "name": "invalid.mismatched.parenthesis.slice"
514
+ }
515
+ }
516
+ },
517
+ {
518
+ "begin": "(\\))",
519
+ "end": "$",
520
+ "patterns": [
521
+ {
522
+ "include": "#standardP"
523
+ },
524
+ {
525
+ "name": "constant.preprocessor.slice",
526
+ "match": "\\S"
527
+ }
528
+ ],
529
+ "beginCaptures": {
530
+ "0": {
531
+ "name": "meta.group.parameters.preprocessor.slice"
532
+ },
533
+ "1": {
534
+ "name": "punctuation.section.group.parameters.end.slice"
535
+ }
536
+ }
537
+ }
538
+ ],
539
+ "beginCaptures": {
540
+ "1": {
541
+ "patterns": [
542
+ {
543
+ "include": "#preprocessor.identifier"
544
+ }
545
+ ]
546
+ },
547
+ "2": {
548
+ "name": "meta.group.parameters.preprocessor.slice"
549
+ },
550
+ "3": {
551
+ "name": "punctuation.section.group.parameters.begin.slice"
552
+ }
553
+ }
554
+ },
555
+ {
556
+ "begin": "\\b\\w+\\b",
557
+ "end": "$",
558
+ "patterns": [
559
+ {
560
+ "include": "#standardP"
561
+ },
562
+ {
563
+ "name": "constant.preprocessor.slice",
564
+ "match": "\\S"
565
+ }
566
+ ],
567
+ "beginCaptures": {
568
+ "0": {
569
+ "patterns": [
570
+ {
571
+ "include": "#preprocessor.identifier"
572
+ }
573
+ ]
574
+ }
575
+ }
576
+ }
577
+ ],
578
+ "beginCaptures": {
579
+ "0": {
580
+ "name": "keyword.control.preprocessor.define.slice"
581
+ },
582
+ "1": {
583
+ "name": "punctuation.definition.preprocessor.slice"
584
+ }
585
+ }
586
+ }
587
+ ]
588
+ },
589
+ "preprocessor.elif": {
590
+ "patterns": [
591
+ {
592
+ "name": "meta.preprocessor.elif.slice",
593
+ "begin": "(#)\\s*elif\\b",
594
+ "end": "$",
595
+ "patterns": [
596
+ {
597
+ "include": "#standardP"
598
+ }
599
+ ],
600
+ "beginCaptures": {
601
+ "0": {
602
+ "name": "keyword.control.preprocessor.elif.slice"
603
+ },
604
+ "1": {
605
+ "name": "punctuation.definition.preprocessor.slice"
606
+ }
607
+ }
608
+ }
609
+ ]
610
+ },
611
+ "preprocessor.else": {
612
+ "patterns": [
613
+ {
614
+ "name": "meta.preprocessor.endif.slice",
615
+ "begin": "(#)\\s*else\\b",
616
+ "end": "$",
617
+ "patterns": [
618
+ {
619
+ "include": "#standardP"
620
+ }
621
+ ],
622
+ "beginCaptures": {
623
+ "0": {
624
+ "name": "keyword.control.preprocessor.else.slice"
625
+ },
626
+ "1": {
627
+ "name": "punctuation.definition.preprocessor.slice"
628
+ }
629
+ }
630
+ }
631
+ ]
632
+ },
633
+ "preprocessor.endif": {
634
+ "patterns": [
635
+ {
636
+ "name": "meta.preprocessor.endif.slice",
637
+ "begin": "(#)\\s*endif\\b",
638
+ "end": "$",
639
+ "patterns": [
640
+ {
641
+ "include": "#standardP"
642
+ }
643
+ ],
644
+ "beginCaptures": {
645
+ "0": {
646
+ "name": "keyword.control.preprocessor.endif.slice"
647
+ },
648
+ "1": {
649
+ "name": "punctuation.definition.preprocessor.slice"
650
+ }
651
+ }
652
+ }
653
+ ]
654
+ },
655
+ "preprocessor.error": {
656
+ "patterns": [
657
+ {
658
+ "name": "meta.preprocessor.error.slice",
659
+ "begin": "((#)\\s*error)\\b",
660
+ "end": "$",
661
+ "patterns": [
662
+ {
663
+ "include": "#standardP"
664
+ },
665
+ {
666
+ "name": "text.error.slice",
667
+ "match": "."
668
+ }
669
+ ],
670
+ "beginCaptures": {
671
+ "1": {
672
+ "name": "keyword.control.preprocessor.error.slice"
673
+ },
674
+ "2": {
675
+ "name": "punctuation.definition.preprocessor.slice"
676
+ }
677
+ }
678
+ }
679
+ ]
680
+ },
681
+ "preprocessor.identifier": {
682
+ "patterns": [
683
+ {
684
+ "name": "entity.identifier.preproprocessor.slice",
685
+ "match": "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b"
686
+ },
687
+ {
688
+ "include": "#invalid"
689
+ }
690
+ ]
691
+ },
692
+ "preprocessor.if": {
693
+ "patterns": [
694
+ {
695
+ "name": "meta.preprocessor.if.slice",
696
+ "begin": "(#)\\s*if\\b",
697
+ "end": "$",
698
+ "patterns": [
699
+ {
700
+ "include": "#standardP"
701
+ }
702
+ ],
703
+ "beginCaptures": {
704
+ "0": {
705
+ "name": "keyword.control.preprocessor.if.slice"
706
+ },
707
+ "1": {
708
+ "name": "punctuation.definition.preprocessor.slice"
709
+ }
710
+ }
711
+ }
712
+ ]
713
+ },
714
+ "preprocessor.ifdef": {
715
+ "patterns": [
716
+ {
717
+ "name": "meta.preprocessor.ifdef.slice",
718
+ "begin": "(#)\\s*ifdef\\b",
719
+ "end": "$",
720
+ "patterns": [
721
+ {
722
+ "include": "#standardP"
723
+ },
724
+ {
725
+ "begin": "\\b\\w+\\b",
726
+ "end": "$",
727
+ "patterns": [
728
+ {
729
+ "include": "#standardP"
730
+ }
731
+ ],
732
+ "beginCaptures": {
733
+ "0": {
734
+ "patterns": [
735
+ {
736
+ "include": "#preprocessor.identifier"
737
+ }
738
+ ]
739
+ }
740
+ }
741
+ }
742
+ ],
743
+ "beginCaptures": {
744
+ "0": {
745
+ "name": "keyword.control.preprocessor.ifdef.slice"
746
+ },
747
+ "1": {
748
+ "name": "punctuation.definition.preprocessor.slice"
749
+ }
750
+ }
751
+ }
752
+ ]
753
+ },
754
+ "preprocessor.ifndef": {
755
+ "patterns": [
756
+ {
757
+ "name": "meta.preprocessor.ifndef.slice",
758
+ "begin": "(#)\\s*ifndef\\b",
759
+ "end": "$",
760
+ "patterns": [
761
+ {
762
+ "include": "#standardP"
763
+ },
764
+ {
765
+ "begin": "\\b\\w+\\b",
766
+ "end": "$",
767
+ "patterns": [
768
+ {
769
+ "include": "#standardP"
770
+ }
771
+ ],
772
+ "beginCaptures": {
773
+ "0": {
774
+ "patterns": [
775
+ {
776
+ "include": "#preprocessor.identifier"
777
+ }
778
+ ]
779
+ }
780
+ }
781
+ }
782
+ ],
783
+ "beginCaptures": {
784
+ "0": {
785
+ "name": "keyword.control.preprocessor.ifndef.slice"
786
+ },
787
+ "1": {
788
+ "name": "punctuation.definition.preprocessor.slice"
789
+ }
790
+ }
791
+ }
792
+ ]
793
+ },
794
+ "preprocessor.include": {
795
+ "patterns": [
796
+ {
797
+ "name": "meta.preprocessor.include.slice",
798
+ "begin": "((#)\\s*include)\\b",
799
+ "end": "$",
800
+ "patterns": [
801
+ {
802
+ "include": "#standardP"
803
+ },
804
+ {
805
+ "begin": "(?\u003c=\"|\u003e)",
806
+ "end": "$",
807
+ "patterns": [
808
+ {
809
+ "include": "#standardP"
810
+ }
811
+ ]
812
+ },
813
+ {
814
+ "name": "string.quoted.double.slice",
815
+ "contentName": "entity.name.header.slice",
816
+ "begin": "\"",
817
+ "end": "(\")|($)",
818
+ "patterns": [
819
+ {
820
+ "match": "\\\\."
821
+ },
822
+ {
823
+ "include": "#line.continuation"
824
+ }
825
+ ],
826
+ "beginCaptures": {
827
+ "0": {
828
+ "name": "punctuation.definition.string.begin.slice"
829
+ }
830
+ },
831
+ "endCaptures": {
832
+ "1": {
833
+ "name": "punctuation.definition.string.end.slice"
834
+ },
835
+ "2": {
836
+ "name": "invalid.illegal.mismatched-quotes.slice"
837
+ }
838
+ }
839
+ },
840
+ {
841
+ "name": "string.quoted.other.angle.slice",
842
+ "contentName": "entity.name.header.slice",
843
+ "begin": "\u003c",
844
+ "end": "(\u003e)|($)",
845
+ "patterns": [
846
+ {
847
+ "match": "\\\\."
848
+ },
849
+ {
850
+ "include": "#line.continuation"
851
+ }
852
+ ],
853
+ "beginCaptures": {
854
+ "0": {
855
+ "name": "punctuation.definition.string.begin.slice"
856
+ }
857
+ },
858
+ "endCaptures": {
859
+ "1": {
860
+ "name": "punctuation.definition.string.end.slice"
861
+ },
862
+ "2": {
863
+ "name": "invalid.illegal.mismatched-quotes.slice"
864
+ }
865
+ }
866
+ }
867
+ ],
868
+ "beginCaptures": {
869
+ "1": {
870
+ "name": "keyword.control.preprocessor.include.slice"
871
+ },
872
+ "2": {
873
+ "name": "punctuation.definition.preprocessor.slice"
874
+ }
875
+ }
876
+ }
877
+ ]
878
+ },
879
+ "preprocessor.line": {
880
+ "patterns": [
881
+ {
882
+ "name": "meta.preprocessor.line.slice",
883
+ "begin": "((#)\\s*line)\\b",
884
+ "end": "$",
885
+ "patterns": [
886
+ {
887
+ "include": "#standardP"
888
+ },
889
+ {
890
+ "begin": "\\b[\\d]+\\b",
891
+ "end": "$",
892
+ "patterns": [
893
+ {
894
+ "include": "#standardP"
895
+ },
896
+ {
897
+ "begin": "(?\u003c=\")",
898
+ "end": "$",
899
+ "patterns": [
900
+ {
901
+ "include": "#standardP"
902
+ }
903
+ ]
904
+ },
905
+ {
906
+ "name": "string.quoted.double.slice",
907
+ "contentName": "entity.name.file.slice",
908
+ "begin": "\"",
909
+ "end": "(\")|($)",
910
+ "patterns": [
911
+ {
912
+ "match": "\\\\."
913
+ },
914
+ {
915
+ "include": "#line.continuation"
916
+ }
917
+ ],
918
+ "beginCaptures": {
919
+ "0": {
920
+ "name": "punctuation.definition.string.begin.slice"
921
+ }
922
+ },
923
+ "endCaptures": {
924
+ "1": {
925
+ "name": "punctuation.definition.string.end.slice"
926
+ },
927
+ "2": {
928
+ "name": "invalid.illegal.mismatched-quotes.slice"
929
+ }
930
+ }
931
+ }
932
+ ],
933
+ "beginCaptures": {
934
+ "0": {
935
+ "patterns": [
936
+ {
937
+ "include": "#constant.numeric.dec"
938
+ }
939
+ ]
940
+ }
941
+ }
942
+ }
943
+ ],
944
+ "beginCaptures": {
945
+ "1": {
946
+ "name": "keyword.control.preprocessor.line.slice"
947
+ },
948
+ "2": {
949
+ "name": "punctuation.definition.preprocessor.slice"
950
+ }
951
+ }
952
+ }
953
+ ]
954
+ },
955
+ "preprocessor.null": {
956
+ "patterns": [
957
+ {
958
+ "name": "meta.preprocessor.null.slice",
959
+ "begin": "(#)",
960
+ "end": "$",
961
+ "patterns": [
962
+ {
963
+ "include": "#standardP"
964
+ }
965
+ ],
966
+ "beginCaptures": {
967
+ "0": {
968
+ "name": "punctuation.definition.preprocessor.slice"
969
+ },
970
+ "1": {
971
+ "name": "keyword.control.preprocessor.null.slice"
972
+ }
973
+ }
974
+ }
975
+ ]
976
+ },
977
+ "preprocessor.pragma": {
978
+ "patterns": [
979
+ {
980
+ "name": "meta.preprocessor.pragma.slice",
981
+ "begin": "((#)\\s*pragma)\\b",
982
+ "end": "$",
983
+ "patterns": [
984
+ {
985
+ "include": "#standardP"
986
+ },
987
+ {
988
+ "begin": "\\b\\S+\\b",
989
+ "end": "$",
990
+ "patterns": [
991
+ {
992
+ "include": "#standardP"
993
+ }
994
+ ],
995
+ "beginCaptures": {
996
+ "0": {
997
+ "name": "keyword.control.preprocessor.pragma.other.slice"
998
+ }
999
+ }
1000
+ }
1001
+ ],
1002
+ "beginCaptures": {
1003
+ "1": {
1004
+ "name": "keyword.control.preprocessor.pragma.slice"
1005
+ },
1006
+ "2": {
1007
+ "name": "punctuation.definition.preprocessor.slice"
1008
+ }
1009
+ }
1010
+ }
1011
+ ]
1012
+ },
1013
+ "preprocessor.undef": {
1014
+ "patterns": [
1015
+ {
1016
+ "name": "meta.preprocessor.undef.slice",
1017
+ "begin": "((#)\\s*undef)\\b",
1018
+ "end": "$",
1019
+ "patterns": [
1020
+ {
1021
+ "include": "#standardP"
1022
+ },
1023
+ {
1024
+ "begin": "\\b\\w+\\b",
1025
+ "end": "$",
1026
+ "patterns": [
1027
+ {
1028
+ "include": "#standardP"
1029
+ }
1030
+ ],
1031
+ "beginCaptures": {
1032
+ "0": {
1033
+ "patterns": [
1034
+ {
1035
+ "include": "#preprocessor.identifier"
1036
+ }
1037
+ ]
1038
+ }
1039
+ }
1040
+ }
1041
+ ],
1042
+ "beginCaptures": {
1043
+ "1": {
1044
+ "name": "keyword.control.preprocessor.undef.slice"
1045
+ },
1046
+ "2": {
1047
+ "name": "punctuation.definition.preprocessor.slice"
1048
+ }
1049
+ }
1050
+ }
1051
+ ]
1052
+ },
1053
+ "standard": {
1054
+ "patterns": [
1055
+ {
1056
+ "include": "#comment"
1057
+ },
1058
+ {
1059
+ "include": "#preprocessor"
1060
+ },
1061
+ {
1062
+ "include": "#line.continuation"
1063
+ }
1064
+ ]
1065
+ },
1066
+ "standardP": {
1067
+ "patterns": [
1068
+ {
1069
+ "include": "#comment"
1070
+ },
1071
+ {
1072
+ "include": "#line.continuation"
1073
+ }
1074
+ ]
1075
+ },
1076
+ "storage": {
1077
+ "patterns": [
1078
+ {
1079
+ "include": "#storage.module"
1080
+ },
1081
+ {
1082
+ "include": "#storage.enum"
1083
+ },
1084
+ {
1085
+ "include": "#storage.struct"
1086
+ },
1087
+ {
1088
+ "include": "#storage.sequence"
1089
+ },
1090
+ {
1091
+ "include": "#storage.dictionary"
1092
+ },
1093
+ {
1094
+ "include": "#storage.interface"
1095
+ },
1096
+ {
1097
+ "include": "#storage.exception"
1098
+ },
1099
+ {
1100
+ "include": "#storage.class"
1101
+ },
1102
+ {
1103
+ "include": "#storage.basic"
1104
+ }
1105
+ ]
1106
+ },
1107
+ "storage.basic": {
1108
+ "patterns": [
1109
+ {
1110
+ "include": "#storage.modifier"
1111
+ },
1112
+ {
1113
+ "name": "meta.bool.slice",
1114
+ "begin": "\\\\?\\bbool\\b",
1115
+ "end": "(;)|((?=}))",
1116
+ "patterns": [
1117
+ {
1118
+ "include": "#standard"
1119
+ },
1120
+ {
1121
+ "begin": "\\\\?\\b\\w+\\b",
1122
+ "end": "(?=;|})",
1123
+ "patterns": [
1124
+ {
1125
+ "include": "#storage.basic.assignment"
1126
+ }
1127
+ ],
1128
+ "beginCaptures": {
1129
+ "0": {
1130
+ "name": "entity.name.bool.slice",
1131
+ "patterns": [
1132
+ {
1133
+ "include": "#storage.identifier"
1134
+ }
1135
+ ]
1136
+ }
1137
+ }
1138
+ }
1139
+ ],
1140
+ "beginCaptures": {
1141
+ "0": {
1142
+ "patterns": [
1143
+ {
1144
+ "include": "#storage.types"
1145
+ }
1146
+ ]
1147
+ }
1148
+ },
1149
+ "endCaptures": {
1150
+ "1": {
1151
+ "name": "punctuation.terminator.semicolon.slice"
1152
+ },
1153
+ "2": {
1154
+ "name": "invalid.illegal.missing.semicolon.slice"
1155
+ }
1156
+ }
1157
+ },
1158
+ {
1159
+ "name": "meta.byte.slice",
1160
+ "begin": "\\\\?\\bbyte\\b",
1161
+ "end": "(;)|((?=}))",
1162
+ "patterns": [
1163
+ {
1164
+ "include": "#standard"
1165
+ },
1166
+ {
1167
+ "begin": "\\\\?\\b\\w+\\b",
1168
+ "end": "(?=;|})",
1169
+ "patterns": [
1170
+ {
1171
+ "include": "#storage.basic.assignment"
1172
+ }
1173
+ ],
1174
+ "beginCaptures": {
1175
+ "0": {
1176
+ "name": "entity.name.byte.slice",
1177
+ "patterns": [
1178
+ {
1179
+ "include": "#storage.identifier"
1180
+ }
1181
+ ]
1182
+ }
1183
+ }
1184
+ }
1185
+ ],
1186
+ "beginCaptures": {
1187
+ "0": {
1188
+ "patterns": [
1189
+ {
1190
+ "include": "#storage.types"
1191
+ }
1192
+ ]
1193
+ }
1194
+ },
1195
+ "endCaptures": {
1196
+ "1": {
1197
+ "name": "punctuation.terminator.semicolon.slice"
1198
+ },
1199
+ "2": {
1200
+ "name": "invalid.illegal.missing.semicolon.slice"
1201
+ }
1202
+ }
1203
+ },
1204
+ {
1205
+ "name": "meta.short.slice",
1206
+ "begin": "\\\\?\\bshort\\b",
1207
+ "end": "(;)|((?=}))",
1208
+ "patterns": [
1209
+ {
1210
+ "include": "#standard"
1211
+ },
1212
+ {
1213
+ "begin": "\\\\?\\b\\w+\\b",
1214
+ "end": "(?=;|})",
1215
+ "patterns": [
1216
+ {
1217
+ "include": "#storage.basic.assignment"
1218
+ }
1219
+ ],
1220
+ "beginCaptures": {
1221
+ "0": {
1222
+ "name": "entity.name.short.slice",
1223
+ "patterns": [
1224
+ {
1225
+ "include": "#storage.identifier"
1226
+ }
1227
+ ]
1228
+ }
1229
+ }
1230
+ }
1231
+ ],
1232
+ "beginCaptures": {
1233
+ "0": {
1234
+ "patterns": [
1235
+ {
1236
+ "include": "#storage.types"
1237
+ }
1238
+ ]
1239
+ }
1240
+ },
1241
+ "endCaptures": {
1242
+ "1": {
1243
+ "name": "punctuation.terminator.semicolon.slice"
1244
+ },
1245
+ "2": {
1246
+ "name": "invalid.illegal.missing.semicolon.slice"
1247
+ }
1248
+ }
1249
+ },
1250
+ {
1251
+ "name": "meta.int.slice",
1252
+ "begin": "\\\\?\\bint\\b",
1253
+ "end": "(;)|((?=}))",
1254
+ "patterns": [
1255
+ {
1256
+ "include": "#standard"
1257
+ },
1258
+ {
1259
+ "begin": "\\\\?\\b\\w+\\b",
1260
+ "end": "(?=;|})",
1261
+ "patterns": [
1262
+ {
1263
+ "include": "#storage.basic.assignment"
1264
+ }
1265
+ ],
1266
+ "beginCaptures": {
1267
+ "0": {
1268
+ "name": "entity.name.int.slice",
1269
+ "patterns": [
1270
+ {
1271
+ "include": "#storage.identifier"
1272
+ }
1273
+ ]
1274
+ }
1275
+ }
1276
+ }
1277
+ ],
1278
+ "beginCaptures": {
1279
+ "0": {
1280
+ "patterns": [
1281
+ {
1282
+ "include": "#storage.types"
1283
+ }
1284
+ ]
1285
+ }
1286
+ },
1287
+ "endCaptures": {
1288
+ "1": {
1289
+ "name": "punctuation.terminator.semicolon.slice"
1290
+ },
1291
+ "2": {
1292
+ "name": "invalid.illegal.missing.semicolon.slice"
1293
+ }
1294
+ }
1295
+ },
1296
+ {
1297
+ "name": "meta.long.slice",
1298
+ "begin": "\\\\?\\blong\\b",
1299
+ "end": "(;)|((?=}))",
1300
+ "patterns": [
1301
+ {
1302
+ "include": "#standard"
1303
+ },
1304
+ {
1305
+ "begin": "\\\\?\\b\\w+\\b",
1306
+ "end": "(?=;|})",
1307
+ "patterns": [
1308
+ {
1309
+ "include": "#storage.basic.assignment"
1310
+ }
1311
+ ],
1312
+ "beginCaptures": {
1313
+ "0": {
1314
+ "name": "entity.name.long.slice",
1315
+ "patterns": [
1316
+ {
1317
+ "include": "#storage.identifier"
1318
+ }
1319
+ ]
1320
+ }
1321
+ }
1322
+ }
1323
+ ],
1324
+ "beginCaptures": {
1325
+ "0": {
1326
+ "patterns": [
1327
+ {
1328
+ "include": "#storage.types"
1329
+ }
1330
+ ]
1331
+ }
1332
+ },
1333
+ "endCaptures": {
1334
+ "1": {
1335
+ "name": "punctuation.terminator.semicolon.slice"
1336
+ },
1337
+ "2": {
1338
+ "name": "invalid.illegal.missing.semicolon.slice"
1339
+ }
1340
+ }
1341
+ },
1342
+ {
1343
+ "name": "meta.float.slice",
1344
+ "begin": "\\\\?\\bfloat\\b",
1345
+ "end": "(;)|((?=}))",
1346
+ "patterns": [
1347
+ {
1348
+ "include": "#standard"
1349
+ },
1350
+ {
1351
+ "begin": "\\\\?\\b\\w+\\b",
1352
+ "end": "(?=;|})",
1353
+ "patterns": [
1354
+ {
1355
+ "include": "#storage.basic.assignment"
1356
+ }
1357
+ ],
1358
+ "beginCaptures": {
1359
+ "0": {
1360
+ "name": "entity.name.float.slice",
1361
+ "patterns": [
1362
+ {
1363
+ "include": "#storage.identifier"
1364
+ }
1365
+ ]
1366
+ }
1367
+ }
1368
+ }
1369
+ ],
1370
+ "beginCaptures": {
1371
+ "0": {
1372
+ "patterns": [
1373
+ {
1374
+ "include": "#storage.types"
1375
+ }
1376
+ ]
1377
+ }
1378
+ },
1379
+ "endCaptures": {
1380
+ "1": {
1381
+ "name": "punctuation.terminator.semicolon.slice"
1382
+ },
1383
+ "2": {
1384
+ "name": "invalid.illegal.missing.semicolon.slice"
1385
+ }
1386
+ }
1387
+ },
1388
+ {
1389
+ "name": "meta.double.slice",
1390
+ "begin": "\\\\?\\bdouble\\b",
1391
+ "end": "(;)|((?=}))",
1392
+ "patterns": [
1393
+ {
1394
+ "include": "#standard"
1395
+ },
1396
+ {
1397
+ "begin": "\\\\?\\b\\w+\\b",
1398
+ "end": "(?=;|})",
1399
+ "patterns": [
1400
+ {
1401
+ "include": "#storage.basic.assignment"
1402
+ }
1403
+ ],
1404
+ "beginCaptures": {
1405
+ "0": {
1406
+ "name": "entity.name.double.slice",
1407
+ "patterns": [
1408
+ {
1409
+ "include": "#storage.identifier"
1410
+ }
1411
+ ]
1412
+ }
1413
+ }
1414
+ }
1415
+ ],
1416
+ "beginCaptures": {
1417
+ "0": {
1418
+ "patterns": [
1419
+ {
1420
+ "include": "#storage.types"
1421
+ }
1422
+ ]
1423
+ }
1424
+ },
1425
+ "endCaptures": {
1426
+ "1": {
1427
+ "name": "punctuation.terminator.semicolon.slice"
1428
+ },
1429
+ "2": {
1430
+ "name": "invalid.illegal.missing.semicolon.slice"
1431
+ }
1432
+ }
1433
+ },
1434
+ {
1435
+ "name": "meta.string.slice",
1436
+ "begin": "\\\\?\\bstring\\b",
1437
+ "end": "(;)|((?=}))",
1438
+ "patterns": [
1439
+ {
1440
+ "include": "#standard"
1441
+ },
1442
+ {
1443
+ "begin": "\\\\?\\b\\w+\\b",
1444
+ "end": "(?=;|})",
1445
+ "patterns": [
1446
+ {
1447
+ "include": "#storage.basic.assignment"
1448
+ }
1449
+ ],
1450
+ "beginCaptures": {
1451
+ "0": {
1452
+ "name": "entity.name.string.slice",
1453
+ "patterns": [
1454
+ {
1455
+ "include": "#storage.identifier"
1456
+ }
1457
+ ]
1458
+ }
1459
+ }
1460
+ }
1461
+ ],
1462
+ "beginCaptures": {
1463
+ "0": {
1464
+ "patterns": [
1465
+ {
1466
+ "include": "#storage.types"
1467
+ }
1468
+ ]
1469
+ }
1470
+ },
1471
+ "endCaptures": {
1472
+ "1": {
1473
+ "name": "punctuation.terminator.semicolon.slice"
1474
+ },
1475
+ "2": {
1476
+ "name": "invalid.illegal.missing.semicolon.slice"
1477
+ }
1478
+ }
1479
+ },
1480
+ {
1481
+ "name": "meta.type.slice",
1482
+ "begin": "\\\\?\\b[:\\w]+\\b",
1483
+ "end": "(;)|((?=}))",
1484
+ "patterns": [
1485
+ {
1486
+ "include": "#standard"
1487
+ },
1488
+ {
1489
+ "begin": "\\\\?\\b\\w+\\b",
1490
+ "end": "(?=;|})",
1491
+ "patterns": [
1492
+ {
1493
+ "include": "#storage.basic.assignment"
1494
+ }
1495
+ ],
1496
+ "beginCaptures": {
1497
+ "0": {
1498
+ "name": "entity.name.slice",
1499
+ "patterns": [
1500
+ {
1501
+ "include": "#storage.identifier"
1502
+ }
1503
+ ]
1504
+ }
1505
+ }
1506
+ }
1507
+ ],
1508
+ "beginCaptures": {
1509
+ "0": {
1510
+ "patterns": [
1511
+ {
1512
+ "include": "#storage.types.custom"
1513
+ }
1514
+ ]
1515
+ }
1516
+ },
1517
+ "endCaptures": {
1518
+ "1": {
1519
+ "name": "punctuation.terminator.semicolon.slice"
1520
+ },
1521
+ "2": {
1522
+ "name": "invalid.illegal.missing.semicolon.slice"
1523
+ }
1524
+ }
1525
+ }
1526
+ ]
1527
+ },
1528
+ "storage.basic.assignment": {
1529
+ "patterns": [
1530
+ {
1531
+ "include": "#standard"
1532
+ },
1533
+ {
1534
+ "begin": "=",
1535
+ "end": "(?=;|})",
1536
+ "patterns": [
1537
+ {
1538
+ "include": "#standard"
1539
+ },
1540
+ {
1541
+ "include": "#constant"
1542
+ }
1543
+ ],
1544
+ "beginCaptures": {
1545
+ "0": {
1546
+ "name": "keyword.operator.assignment.slice"
1547
+ }
1548
+ }
1549
+ }
1550
+ ]
1551
+ },
1552
+ "storage.class": {
1553
+ "patterns": [
1554
+ {
1555
+ "include": "#storage.modifier"
1556
+ },
1557
+ {
1558
+ "name": "meta.class.slice",
1559
+ "begin": "(?\u003c!\\\\)\\bclass\\b",
1560
+ "end": "(})|(;)",
1561
+ "patterns": [
1562
+ {
1563
+ "include": "#standard"
1564
+ },
1565
+ {
1566
+ "begin": "\\\\?\\b\\w+\\b",
1567
+ "end": "(?=}|;)",
1568
+ "patterns": [
1569
+ {
1570
+ "include": "#standard"
1571
+ },
1572
+ {
1573
+ "begin": "(?\u003c!\\\\)\\bextends\\b",
1574
+ "end": "(?=})|((?=;))",
1575
+ "patterns": [
1576
+ {
1577
+ "include": "#standard"
1578
+ },
1579
+ {
1580
+ "begin": "\\\\?[:\\w]+",
1581
+ "end": "(?=}|;)",
1582
+ "patterns": [
1583
+ {
1584
+ "include": "#standard"
1585
+ },
1586
+ {
1587
+ "include": "#storage.class.implements"
1588
+ }
1589
+ ],
1590
+ "beginCaptures": {
1591
+ "0": {
1592
+ "patterns": [
1593
+ {
1594
+ "include": "#storage.types"
1595
+ }
1596
+ ]
1597
+ }
1598
+ }
1599
+ },
1600
+ {
1601
+ "name": "invalid.illegal.missing-types.slice",
1602
+ "include": "#storage.class.implements"
1603
+ }
1604
+ ],
1605
+ "beginCaptures": {
1606
+ "0": {
1607
+ "name": "storage.modifier.extends.slice"
1608
+ }
1609
+ },
1610
+ "endCaptures": {
1611
+ "1": {
1612
+ "name": "invalid.illegal.missing-brace.slice"
1613
+ }
1614
+ }
1615
+ },
1616
+ {
1617
+ "include": "#storage.class.implements"
1618
+ }
1619
+ ],
1620
+ "beginCaptures": {
1621
+ "0": {
1622
+ "name": "entity.name.class.slice",
1623
+ "patterns": [
1624
+ {
1625
+ "include": "#storage.identifier"
1626
+ }
1627
+ ]
1628
+ }
1629
+ }
1630
+ }
1631
+ ],
1632
+ "beginCaptures": {
1633
+ "0": {
1634
+ "name": "storage.type.class.slice"
1635
+ }
1636
+ },
1637
+ "endCaptures": {
1638
+ "1": {
1639
+ "name": "punctuation.section.block.end.slice"
1640
+ },
1641
+ "2": {
1642
+ "name": "punctuation.terminator.semicolon.slice"
1643
+ }
1644
+ }
1645
+ }
1646
+ ]
1647
+ },
1648
+ "storage.class.body": {
1649
+ "patterns": [
1650
+ {
1651
+ "begin": "{",
1652
+ "end": "(?=})",
1653
+ "patterns": [
1654
+ {
1655
+ "include": "#standard"
1656
+ },
1657
+ {
1658
+ "include": "#storage.basic"
1659
+ }
1660
+ ],
1661
+ "beginCaptures": {
1662
+ "0": {
1663
+ "name": "punctuation.section.block.begin.slice"
1664
+ }
1665
+ }
1666
+ }
1667
+ ]
1668
+ },
1669
+ "storage.class.implements": {
1670
+ "patterns": [
1671
+ {
1672
+ "begin": "(?\u003c!\\\\)\\bimplements\\b",
1673
+ "end": "(?=})|((?=;))",
1674
+ "patterns": [
1675
+ {
1676
+ "include": "#standard"
1677
+ },
1678
+ {
1679
+ "begin": "\\\\?[:\\w]+",
1680
+ "end": "(?={|}|;)|(,)",
1681
+ "patterns": [
1682
+ {
1683
+ "include": "#standard"
1684
+ }
1685
+ ],
1686
+ "beginCaptures": {
1687
+ "0": {
1688
+ "patterns": [
1689
+ {
1690
+ "include": "#storage.types"
1691
+ }
1692
+ ]
1693
+ }
1694
+ },
1695
+ "endCaptures": {
1696
+ "1": {
1697
+ "name": "punctuation.separator.class.implements.slice"
1698
+ }
1699
+ }
1700
+ },
1701
+ {
1702
+ "include": "#storage.class.body"
1703
+ }
1704
+ ],
1705
+ "beginCaptures": {
1706
+ "0": {
1707
+ "name": "storage.modifier.implements.slice"
1708
+ }
1709
+ },
1710
+ "endCaptures": {
1711
+ "1": {
1712
+ "name": "invalid.illegal.missing-brace.slice"
1713
+ }
1714
+ }
1715
+ },
1716
+ {
1717
+ "include": "#storage.class.body"
1718
+ }
1719
+ ]
1720
+ },
1721
+ "storage.dictionary": {
1722
+ "patterns": [
1723
+ {
1724
+ "include": "#storage.modifier"
1725
+ },
1726
+ {
1727
+ "name": "meta.dictionary.slice",
1728
+ "begin": "(?\u003c!\\\\)\\bdictionary\\b",
1729
+ "end": "(;)|((?=}))",
1730
+ "patterns": [
1731
+ {
1732
+ "include": "#standard"
1733
+ },
1734
+ {
1735
+ "begin": "(\\\u003c)",
1736
+ "end": "(?=;|})",
1737
+ "patterns": [
1738
+ {
1739
+ "include": "#standard"
1740
+ },
1741
+ {
1742
+ "begin": "(\\\\?[:\\w]+)|(?=\\\u003e)",
1743
+ "end": "(?=;|})",
1744
+ "patterns": [
1745
+ {
1746
+ "include": "#standard"
1747
+ },
1748
+ {
1749
+ "begin": "(,)|(?=\\\u003e)",
1750
+ "end": "(?=;|{|})",
1751
+ "patterns": [
1752
+ {
1753
+ "include": "#standard"
1754
+ },
1755
+ {
1756
+ "begin": "(\\\\?[:\\w]+)|(?=\\\u003e)",
1757
+ "end": "(?=;|})",
1758
+ "patterns": [
1759
+ {
1760
+ "include": "#standard"
1761
+ },
1762
+ {
1763
+ "begin": "(\\\u003e)",
1764
+ "end": "(?=;|})",
1765
+ "patterns": [
1766
+ {
1767
+ "include": "#standard"
1768
+ },
1769
+ {
1770
+ "begin": "\\\\?\\b\\w+\\b",
1771
+ "end": "(?=;|})",
1772
+ "beginCaptures": {
1773
+ "0": {
1774
+ "name": "entity.name.dictionary.slice",
1775
+ "patterns": [
1776
+ {
1777
+ "include": "#storage.identifier"
1778
+ }
1779
+ ]
1780
+ }
1781
+ }
1782
+ }
1783
+ ],
1784
+ "beginCaptures": {
1785
+ "0": {
1786
+ "name": "meta.generic.dictionary.slice"
1787
+ },
1788
+ "1": {
1789
+ "name": "punctuation.definition.generic.end.slice"
1790
+ }
1791
+ }
1792
+ }
1793
+ ],
1794
+ "beginCaptures": {
1795
+ "1": {
1796
+ "name": "meta.generic.dictionary.slice",
1797
+ "patterns": [
1798
+ {
1799
+ "include": "#storage.types"
1800
+ }
1801
+ ]
1802
+ },
1803
+ "2": {
1804
+ "name": "invalid.illegal.missing-type.slice"
1805
+ }
1806
+ }
1807
+ }
1808
+ ],
1809
+ "beginCaptures": {
1810
+ "0": {
1811
+ "name": "meta.generic.dictionary.slice"
1812
+ },
1813
+ "1": {
1814
+ "name": "punctuation.separator.dictionary.slice"
1815
+ },
1816
+ "2": {
1817
+ "name": "invalid.illegal.missing-type.slice"
1818
+ }
1819
+ }
1820
+ }
1821
+ ],
1822
+ "beginCaptures": {
1823
+ "1": {
1824
+ "name": "meta.generic.dictionary.slice",
1825
+ "patterns": [
1826
+ {
1827
+ "include": "#storage.types"
1828
+ }
1829
+ ]
1830
+ },
1831
+ "2": {
1832
+ "name": "invalid.illegal.missing-type.slice"
1833
+ }
1834
+ }
1835
+ }
1836
+ ],
1837
+ "beginCaptures": {
1838
+ "0": {
1839
+ "name": "meta.generic.dictionary.slice"
1840
+ },
1841
+ "1": {
1842
+ "name": "punctuation.definition.generic.begin.slice"
1843
+ }
1844
+ }
1845
+ }
1846
+ ],
1847
+ "beginCaptures": {
1848
+ "0": {
1849
+ "name": "storage.type.dictionary.slice"
1850
+ }
1851
+ },
1852
+ "endCaptures": {
1853
+ "1": {
1854
+ "name": "punctuation.terminator.semicolon.slice"
1855
+ },
1856
+ "2": {
1857
+ "name": "invalid.illegal.missing.semicolon.slice"
1858
+ }
1859
+ }
1860
+ }
1861
+ ]
1862
+ },
1863
+ "storage.enum": {
1864
+ "patterns": [
1865
+ {
1866
+ "include": "#storage.modifier"
1867
+ },
1868
+ {
1869
+ "name": "meta.enum.slice",
1870
+ "begin": "(?\u003c!\\\\)\\benum\\b",
1871
+ "end": "}",
1872
+ "patterns": [
1873
+ {
1874
+ "include": "#standard"
1875
+ },
1876
+ {
1877
+ "begin": "\\\\?\\b\\w+\\b",
1878
+ "end": "(?=})",
1879
+ "patterns": [
1880
+ {
1881
+ "include": "#standard"
1882
+ },
1883
+ {
1884
+ "begin": "{",
1885
+ "end": "(?=})",
1886
+ "patterns": [
1887
+ {
1888
+ "include": "#standard"
1889
+ },
1890
+ {
1891
+ "begin": "\\\\?\\b\\w+\\b",
1892
+ "end": "(?=})|(,)",
1893
+ "patterns": [
1894
+ {
1895
+ "include": "#standard"
1896
+ },
1897
+ {
1898
+ "begin": "=",
1899
+ "end": "(?=})|(?=,)",
1900
+ "patterns": [
1901
+ {
1902
+ "include": "#standard"
1903
+ },
1904
+ {
1905
+ "include": "#constant"
1906
+ }
1907
+ ],
1908
+ "beginCaptures": {
1909
+ "0": {
1910
+ "name": "keyword.operator.assignment.slice"
1911
+ }
1912
+ }
1913
+ }
1914
+ ],
1915
+ "beginCaptures": {
1916
+ "0": {
1917
+ "name": "constant.other.enum.slice",
1918
+ "patterns": [
1919
+ {
1920
+ "include": "#identifier"
1921
+ }
1922
+ ]
1923
+ }
1924
+ },
1925
+ "endCaptures": {
1926
+ "1": {
1927
+ "name": "punctuation.separator.enum.slice"
1928
+ }
1929
+ }
1930
+ }
1931
+ ],
1932
+ "beginCaptures": {
1933
+ "0": {
1934
+ "name": "punctuation.section.block.begin.slice"
1935
+ }
1936
+ }
1937
+ }
1938
+ ],
1939
+ "beginCaptures": {
1940
+ "0": {
1941
+ "name": "entity.name.enum.slice",
1942
+ "patterns": [
1943
+ {
1944
+ "include": "#storage.identifier"
1945
+ }
1946
+ ]
1947
+ }
1948
+ }
1949
+ }
1950
+ ],
1951
+ "beginCaptures": {
1952
+ "0": {
1953
+ "name": "storage.type.enum.slice"
1954
+ }
1955
+ },
1956
+ "endCaptures": {
1957
+ "0": {
1958
+ "name": "punctuation.section.block.end.slice"
1959
+ }
1960
+ }
1961
+ }
1962
+ ]
1963
+ },
1964
+ "storage.exception": {
1965
+ "patterns": [
1966
+ {
1967
+ "include": "#storage.modifier"
1968
+ },
1969
+ {
1970
+ "name": "meta.exception.slice",
1971
+ "begin": "(?\u003c!\\\\)\\bexception\\b",
1972
+ "end": "}",
1973
+ "patterns": [
1974
+ {
1975
+ "include": "#standard"
1976
+ },
1977
+ {
1978
+ "begin": "\\\\?\\b\\w+\\b",
1979
+ "end": "(?=})",
1980
+ "patterns": [
1981
+ {
1982
+ "include": "#standard"
1983
+ },
1984
+ {
1985
+ "begin": "(?\u003c!\\\\)\\bextends\\b",
1986
+ "end": "(?=})",
1987
+ "patterns": [
1988
+ {
1989
+ "include": "#standard"
1990
+ },
1991
+ {
1992
+ "begin": "\\\\?[:\\w]+",
1993
+ "end": "(?={|})|(,)",
1994
+ "patterns": [
1995
+ {
1996
+ "include": "#standard"
1997
+ }
1998
+ ],
1999
+ "beginCaptures": {
2000
+ "0": {
2001
+ "patterns": [
2002
+ {
2003
+ "include": "#storage.types"
2004
+ }
2005
+ ]
2006
+ }
2007
+ },
2008
+ "endCaptures": {
2009
+ "1": {
2010
+ "name": "punctuation.separator.exception.extends.slice"
2011
+ }
2012
+ }
2013
+ },
2014
+ {
2015
+ "include": "#storage.exception.body"
2016
+ }
2017
+ ],
2018
+ "beginCaptures": {
2019
+ "0": {
2020
+ "name": "storage.modifier.extends.slice"
2021
+ }
2022
+ }
2023
+ },
2024
+ {
2025
+ "include": "#storage.exception.body"
2026
+ }
2027
+ ],
2028
+ "beginCaptures": {
2029
+ "0": {
2030
+ "name": "entity.name.exception.slice",
2031
+ "patterns": [
2032
+ {
2033
+ "include": "#storage.identifier"
2034
+ }
2035
+ ]
2036
+ }
2037
+ }
2038
+ }
2039
+ ],
2040
+ "beginCaptures": {
2041
+ "0": {
2042
+ "name": "storage.type.exception.slice"
2043
+ }
2044
+ },
2045
+ "endCaptures": {
2046
+ "0": {
2047
+ "name": "punctuation.section.block.end.slice"
2048
+ }
2049
+ }
2050
+ }
2051
+ ]
2052
+ },
2053
+ "storage.exception.body": {
2054
+ "patterns": [
2055
+ {
2056
+ "begin": "{",
2057
+ "end": "(?=})",
2058
+ "patterns": [
2059
+ {
2060
+ "include": "#standard"
2061
+ },
2062
+ {
2063
+ "include": "#storage.basic"
2064
+ }
2065
+ ],
2066
+ "beginCaptures": {
2067
+ "0": {
2068
+ "name": "punctuation.section.block.begin.slice"
2069
+ }
2070
+ }
2071
+ }
2072
+ ]
2073
+ },
2074
+ "storage.identifier": {
2075
+ "patterns": [
2076
+ {
2077
+ "name": "invalid.illegal.reserved.identifier.slice",
2078
+ "match": "(?\u003c!\\\\)\\b(?:bool|byte|class|const|dictionary|double|enum|exception|extends|false|float|idempotent|implements|int|interface|local|LocalObject|long|module|Object|optional|out|sequence|short|string|struct|throws|true|Value|void)\\b"
2079
+ },
2080
+ {
2081
+ "match": "(\\\\)?\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b",
2082
+ "captures": {
2083
+ "1": {
2084
+ "name": "punctuation.escape.backslash.slice"
2085
+ },
2086
+ "2": {
2087
+ "patterns": [
2088
+ {
2089
+ "name": "invalid.illegal.underscore.slice",
2090
+ "match": "__+|\\b_|_\\b"
2091
+ }
2092
+ ]
2093
+ }
2094
+ }
2095
+ },
2096
+ {
2097
+ "name": "invalid.illegal.identifier.slice",
2098
+ "match": "."
2099
+ }
2100
+ ]
2101
+ },
2102
+ "storage.interface": {
2103
+ "patterns": [
2104
+ {
2105
+ "include": "#storage.modifier"
2106
+ },
2107
+ {
2108
+ "name": "meta.interface.slice",
2109
+ "begin": "(?\u003c!\\\\)\\binterface\\b",
2110
+ "end": "(})|(;)",
2111
+ "patterns": [
2112
+ {
2113
+ "include": "#standard"
2114
+ },
2115
+ {
2116
+ "begin": "\\\\?\\b\\w+\\b",
2117
+ "end": "(?=}|;)",
2118
+ "patterns": [
2119
+ {
2120
+ "include": "#standard"
2121
+ },
2122
+ {
2123
+ "begin": "(?\u003c!\\\\)\\bextends\\b",
2124
+ "end": "(?=})|((?=;))",
2125
+ "patterns": [
2126
+ {
2127
+ "include": "#standard"
2128
+ },
2129
+ {
2130
+ "begin": "\\\\?[:\\w]+",
2131
+ "end": "(?={|}|;)|(,)",
2132
+ "patterns": [
2133
+ {
2134
+ "include": "#standard"
2135
+ }
2136
+ ],
2137
+ "beginCaptures": {
2138
+ "0": {
2139
+ "patterns": [
2140
+ {
2141
+ "include": "#storage.types"
2142
+ }
2143
+ ]
2144
+ }
2145
+ },
2146
+ "endCaptures": {
2147
+ "1": {
2148
+ "name": "punctuation.separator.interface.extends.slice"
2149
+ }
2150
+ }
2151
+ },
2152
+ {
2153
+ "include": "#storage.interface.body"
2154
+ }
2155
+ ],
2156
+ "beginCaptures": {
2157
+ "0": {
2158
+ "name": "storage.modifier.extends.slice"
2159
+ }
2160
+ },
2161
+ "endCaptures": {
2162
+ "1": {
2163
+ "name": "invalid.illegal.missing-brace.slice"
2164
+ }
2165
+ }
2166
+ },
2167
+ {
2168
+ "include": "#storage.interface.body"
2169
+ }
2170
+ ],
2171
+ "beginCaptures": {
2172
+ "0": {
2173
+ "name": "entity.name.interface.slice",
2174
+ "patterns": [
2175
+ {
2176
+ "include": "#storage.identifier"
2177
+ }
2178
+ ]
2179
+ }
2180
+ }
2181
+ }
2182
+ ],
2183
+ "beginCaptures": {
2184
+ "0": {
2185
+ "name": "storage.type.interface.slice"
2186
+ }
2187
+ },
2188
+ "endCaptures": {
2189
+ "1": {
2190
+ "name": "punctuation.section.block.end.slice"
2191
+ },
2192
+ "2": {
2193
+ "name": "punctuation.terminator.semicolon.slice"
2194
+ }
2195
+ }
2196
+ }
2197
+ ]
2198
+ },
2199
+ "storage.interface.body": {
2200
+ "patterns": [
2201
+ {
2202
+ "begin": "{",
2203
+ "end": "(?=})",
2204
+ "patterns": [
2205
+ {
2206
+ "include": "#standard"
2207
+ },
2208
+ {
2209
+ "include": "#storage.operation"
2210
+ }
2211
+ ],
2212
+ "beginCaptures": {
2213
+ "0": {
2214
+ "name": "punctuation.section.block.begin.slice"
2215
+ }
2216
+ }
2217
+ }
2218
+ ]
2219
+ },
2220
+ "storage.modifier": {
2221
+ "patterns": [
2222
+ {
2223
+ "begin": "(?=\\[)",
2224
+ "end": "(?\u003c=])",
2225
+ "patterns": [
2226
+ {
2227
+ "include": "#standard"
2228
+ },
2229
+ {
2230
+ "include": "#metadata.local"
2231
+ }
2232
+ ]
2233
+ },
2234
+ {
2235
+ "match": "(?\u003c!\\\\)\\b(?:(local)|(const)|(idempotent)|(out)|(optional\\(\\d*\\)))(?:\\b|(?\u003c=\\)))",
2236
+ "captures": {
2237
+ "1": {
2238
+ "name": "storage.modifier.local.slice"
2239
+ },
2240
+ "2": {
2241
+ "name": "storage.modifier.const.slice"
2242
+ },
2243
+ "3": {
2244
+ "name": "storage.modifier.idempotent.slice"
2245
+ },
2246
+ "4": {
2247
+ "name": "storage.modifier.out.slice"
2248
+ },
2249
+ "5": {
2250
+ "patterns": [
2251
+ {
2252
+ "match": "(optional)(\\()(\\d*)(\\))",
2253
+ "captures": {
2254
+ "1": {
2255
+ "name": "storage.modifier.optional.slice"
2256
+ },
2257
+ "2": {
2258
+ "name": "punctuation.section.group.optional.begin.slice"
2259
+ },
2260
+ "3": {
2261
+ "patterns": [
2262
+ {
2263
+ "include": "#constant.numeric.dec"
2264
+ }
2265
+ ]
2266
+ },
2267
+ "4": {
2268
+ "name": "punctuation.section.group.optional.end.slice"
2269
+ }
2270
+ }
2271
+ }
2272
+ ]
2273
+ }
2274
+ }
2275
+ }
2276
+ ]
2277
+ },
2278
+ "storage.module": {
2279
+ "patterns": [
2280
+ {
2281
+ "include": "#storage.modifier"
2282
+ },
2283
+ {
2284
+ "name": "meta.module.slice",
2285
+ "begin": "(?\u003c!\\\\)\\bmodule\\b",
2286
+ "end": "}",
2287
+ "patterns": [
2288
+ {
2289
+ "include": "#standard"
2290
+ },
2291
+ {
2292
+ "begin": "\\\\?\\b\\w+\\b",
2293
+ "end": "(?=})",
2294
+ "patterns": [
2295
+ {
2296
+ "include": "#standard"
2297
+ },
2298
+ {
2299
+ "begin": "{",
2300
+ "end": "(?=})",
2301
+ "patterns": [
2302
+ {
2303
+ "include": "#standard"
2304
+ },
2305
+ {
2306
+ "include": "#storage"
2307
+ }
2308
+ ],
2309
+ "beginCaptures": {
2310
+ "0": {
2311
+ "name": "punctuation.section.block.begin.slice"
2312
+ }
2313
+ }
2314
+ }
2315
+ ],
2316
+ "beginCaptures": {
2317
+ "0": {
2318
+ "name": "entity.name.module.slice",
2319
+ "patterns": [
2320
+ {
2321
+ "include": "#storage.identifier"
2322
+ }
2323
+ ]
2324
+ }
2325
+ }
2326
+ }
2327
+ ],
2328
+ "beginCaptures": {
2329
+ "0": {
2330
+ "name": "storage.type.module.slice"
2331
+ }
2332
+ },
2333
+ "endCaptures": {
2334
+ "0": {
2335
+ "name": "punctuation.section.block.end.slice"
2336
+ }
2337
+ }
2338
+ }
2339
+ ]
2340
+ },
2341
+ "storage.operation": {
2342
+ "patterns": [
2343
+ {
2344
+ "include": "#storage.modifier"
2345
+ },
2346
+ {
2347
+ "name": "meta.operation.slice",
2348
+ "begin": "\\\\?[:\\w]+",
2349
+ "end": "(;)|((?=}))",
2350
+ "patterns": [
2351
+ {
2352
+ "include": "#standard"
2353
+ },
2354
+ {
2355
+ "begin": "\\\\?\\b\\w+\\b",
2356
+ "end": "(?=;|})",
2357
+ "patterns": [
2358
+ {
2359
+ "include": "#standard"
2360
+ },
2361
+ {
2362
+ "begin": "\\(",
2363
+ "end": "(?=;|})",
2364
+ "patterns": [
2365
+ {
2366
+ "include": "#standard"
2367
+ },
2368
+ {
2369
+ "begin": "\\)",
2370
+ "end": "(?=;|})",
2371
+ "patterns": [
2372
+ {
2373
+ "include": "#standard"
2374
+ },
2375
+ {
2376
+ "begin": "(?\u003c!\\\\)\\bthrows\\b",
2377
+ "end": "(?=;|})",
2378
+ "patterns": [
2379
+ {
2380
+ "include": "#standard"
2381
+ },
2382
+ {
2383
+ "begin": "\\\\?[:\\w]+",
2384
+ "end": "(?=;|})|(,)",
2385
+ "patterns": [
2386
+ {
2387
+ "include": "#standard"
2388
+ }
2389
+ ],
2390
+ "beginCaptures": {
2391
+ "0": {
2392
+ "patterns": [
2393
+ {
2394
+ "include": "#storage.types"
2395
+ }
2396
+ ]
2397
+ }
2398
+ },
2399
+ "endCaptures": {
2400
+ "1": {
2401
+ "name": "punctuation.separator.operation.throws.slice"
2402
+ }
2403
+ }
2404
+ }
2405
+ ],
2406
+ "beginCaptures": {
2407
+ "0": {
2408
+ "name": "storage.modifier.throws.slice"
2409
+ }
2410
+ }
2411
+ }
2412
+ ],
2413
+ "beginCaptures": {
2414
+ "0": {
2415
+ "name": "punctuation.section.group.operation.parameters.end.slice"
2416
+ }
2417
+ }
2418
+ },
2419
+ {
2420
+ "include": "#storage.modifier"
2421
+ },
2422
+ {
2423
+ "begin": "\\\\?[:\\w]+",
2424
+ "end": "(?=\\))|(?\u003c=,)",
2425
+ "patterns": [
2426
+ {
2427
+ "begin": "\\\\?\\b\\w+\\b",
2428
+ "end": "(?=\\))|(,)",
2429
+ "beginCaptures": {
2430
+ "0": {
2431
+ "name": "entity.name.operation.parameter",
2432
+ "patterns": [
2433
+ {
2434
+ "include": "#storage.identifier"
2435
+ }
2436
+ ]
2437
+ }
2438
+ },
2439
+ "endCaptures": {
2440
+ "1": {
2441
+ "name": "punctuation.separator.operation.parameter.slice"
2442
+ }
2443
+ }
2444
+ }
2445
+ ],
2446
+ "beginCaptures": {
2447
+ "0": {
2448
+ "patterns": [
2449
+ {
2450
+ "include": "#storage.types"
2451
+ }
2452
+ ]
2453
+ }
2454
+ }
2455
+ }
2456
+ ],
2457
+ "beginCaptures": {
2458
+ "0": {
2459
+ "name": "punctuation.section.group.operation.parameters.begin.slice"
2460
+ }
2461
+ }
2462
+ }
2463
+ ],
2464
+ "beginCaptures": {
2465
+ "0": {
2466
+ "name": "entity.name.function.slice",
2467
+ "patterns": [
2468
+ {
2469
+ "include": "#storage.identifier"
2470
+ }
2471
+ ]
2472
+ }
2473
+ }
2474
+ }
2475
+ ],
2476
+ "beginCaptures": {
2477
+ "0": {
2478
+ "patterns": [
2479
+ {
2480
+ "include": "#storage.types.void"
2481
+ },
2482
+ {
2483
+ "include": "#storage.types"
2484
+ }
2485
+ ]
2486
+ }
2487
+ },
2488
+ "endCaptures": {
2489
+ "1": {
2490
+ "name": "punctuation.terminator.semicolon.slice"
2491
+ },
2492
+ "2": {
2493
+ "name": "invalid.illegal.missing-brace.slice"
2494
+ }
2495
+ }
2496
+ }
2497
+ ]
2498
+ },
2499
+ "storage.sequence": {
2500
+ "patterns": [
2501
+ {
2502
+ "include": "#storage.modifier"
2503
+ },
2504
+ {
2505
+ "name": "meta.sequence.slice",
2506
+ "begin": "(?\u003c!\\\\)\\bsequence\\b",
2507
+ "end": "(;)|((?=}))",
2508
+ "patterns": [
2509
+ {
2510
+ "include": "#standard"
2511
+ },
2512
+ {
2513
+ "begin": "(\\\u003c)",
2514
+ "end": "(?=;|})",
2515
+ "patterns": [
2516
+ {
2517
+ "include": "#standard"
2518
+ },
2519
+ {
2520
+ "begin": "(\\\\?[:\\w]+)|(?=\\\u003e)",
2521
+ "end": "(?=;|})",
2522
+ "patterns": [
2523
+ {
2524
+ "include": "#standard"
2525
+ },
2526
+ {
2527
+ "begin": "(\\\u003e)",
2528
+ "end": "(?=;|})",
2529
+ "patterns": [
2530
+ {
2531
+ "include": "#standard"
2532
+ },
2533
+ {
2534
+ "begin": "\\\\?\\b\\w+\\b",
2535
+ "end": "(?=;|})",
2536
+ "beginCaptures": {
2537
+ "0": {
2538
+ "name": "entity.name.sequence.slice",
2539
+ "patterns": [
2540
+ {
2541
+ "include": "#storage.identifier"
2542
+ }
2543
+ ]
2544
+ }
2545
+ }
2546
+ }
2547
+ ],
2548
+ "beginCaptures": {
2549
+ "0": {
2550
+ "name": "meta.generic.sequence.slice"
2551
+ },
2552
+ "1": {
2553
+ "name": "punctuation.definition.generic.end.slice"
2554
+ }
2555
+ }
2556
+ }
2557
+ ],
2558
+ "beginCaptures": {
2559
+ "1": {
2560
+ "name": "meta.generic.sequence.slice",
2561
+ "patterns": [
2562
+ {
2563
+ "include": "#storage.types"
2564
+ }
2565
+ ]
2566
+ },
2567
+ "2": {
2568
+ "name": "invalid.illegal.missing-type.slice"
2569
+ }
2570
+ }
2571
+ }
2572
+ ],
2573
+ "beginCaptures": {
2574
+ "0": {
2575
+ "name": "meta.generic.sequence.slice"
2576
+ },
2577
+ "1": {
2578
+ "name": "punctuation.definition.generic.begin.slice"
2579
+ }
2580
+ }
2581
+ }
2582
+ ],
2583
+ "beginCaptures": {
2584
+ "0": {
2585
+ "name": "storage.type.sequence.slice"
2586
+ }
2587
+ },
2588
+ "endCaptures": {
2589
+ "1": {
2590
+ "name": "punctuation.terminator.semicolon.slice"
2591
+ },
2592
+ "2": {
2593
+ "name": "invalid.illegal.missing.semicolon.slice"
2594
+ }
2595
+ }
2596
+ }
2597
+ ]
2598
+ },
2599
+ "storage.struct": {
2600
+ "patterns": [
2601
+ {
2602
+ "include": "#storage.modifier"
2603
+ },
2604
+ {
2605
+ "name": "meta.struct.slice",
2606
+ "begin": "(?\u003c!\\\\)\\bstruct\\b",
2607
+ "end": "}",
2608
+ "patterns": [
2609
+ {
2610
+ "include": "#standard"
2611
+ },
2612
+ {
2613
+ "begin": "\\\\?\\b\\w+\\b",
2614
+ "end": "(?=})",
2615
+ "patterns": [
2616
+ {
2617
+ "include": "#standard"
2618
+ },
2619
+ {
2620
+ "begin": "{",
2621
+ "end": "(?=})",
2622
+ "patterns": [
2623
+ {
2624
+ "include": "#standard"
2625
+ },
2626
+ {
2627
+ "include": "#storage.basic"
2628
+ }
2629
+ ],
2630
+ "beginCaptures": {
2631
+ "0": {
2632
+ "name": "punctuation.section.block.begin.slice"
2633
+ }
2634
+ }
2635
+ }
2636
+ ],
2637
+ "beginCaptures": {
2638
+ "0": {
2639
+ "name": "entity.name.struct.slice",
2640
+ "patterns": [
2641
+ {
2642
+ "include": "#storage.identifier"
2643
+ }
2644
+ ]
2645
+ }
2646
+ }
2647
+ }
2648
+ ],
2649
+ "beginCaptures": {
2650
+ "0": {
2651
+ "name": "storage.type.struct.slice"
2652
+ }
2653
+ },
2654
+ "endCaptures": {
2655
+ "0": {
2656
+ "name": "punctuation.section.block.end.slice"
2657
+ }
2658
+ }
2659
+ }
2660
+ ]
2661
+ },
2662
+ "storage.types": {
2663
+ "patterns": [
2664
+ {
2665
+ "match": "(\\\\)?\\b(?:(bool)|(byte)|(short)|(int)|(long)|(float)|(double)|(string)|(Object)|(LocalObject)|(Value))\\b",
2666
+ "captures": {
2667
+ "1": {
2668
+ "name": "punctuation.escape.backslash.slice"
2669
+ },
2670
+ "10": {
2671
+ "name": "storage.type.object.slice"
2672
+ },
2673
+ "11": {
2674
+ "name": "storage.type.localobject.slice"
2675
+ },
2676
+ "12": {
2677
+ "name": "storage.type.value.slice"
2678
+ },
2679
+ "2": {
2680
+ "name": "storage.type.bool.slice"
2681
+ },
2682
+ "3": {
2683
+ "name": "storage.type.byte.slice"
2684
+ },
2685
+ "4": {
2686
+ "name": "storage.type.short.slice"
2687
+ },
2688
+ "5": {
2689
+ "name": "storage.type.int.slice"
2690
+ },
2691
+ "6": {
2692
+ "name": "storage.type.long.slice"
2693
+ },
2694
+ "7": {
2695
+ "name": "storage.type.float.slice"
2696
+ },
2697
+ "8": {
2698
+ "name": "storage.type.double.slice"
2699
+ },
2700
+ "9": {
2701
+ "name": "storage.type.string.slice"
2702
+ }
2703
+ }
2704
+ },
2705
+ {
2706
+ "include": "#storage.types.custom"
2707
+ }
2708
+ ]
2709
+ },
2710
+ "storage.types.custom": {
2711
+ "patterns": [
2712
+ {
2713
+ "match": "(\\\\)?([:\\w]+)",
2714
+ "captures": {
2715
+ "1": {
2716
+ "name": "punctuation.escape.backslash.slice"
2717
+ },
2718
+ "2": {
2719
+ "patterns": [
2720
+ {
2721
+ "name": "variable.type.slice",
2722
+ "match": "\\w+"
2723
+ },
2724
+ {
2725
+ "name": "punctuation.accessor.slice",
2726
+ "match": "::"
2727
+ },
2728
+ {
2729
+ "name": "invalid.illegal.accessor.slice",
2730
+ "match": ":"
2731
+ }
2732
+ ]
2733
+ }
2734
+ }
2735
+ },
2736
+ {
2737
+ "include": "#invalid"
2738
+ }
2739
+ ]
2740
+ },
2741
+ "storage.types.void": {
2742
+ "patterns": [
2743
+ {
2744
+ "name": "storage.type.void.slice",
2745
+ "match": "(\\\\)?\\bvoid\\b",
2746
+ "captures": {
2747
+ "1": {
2748
+ "name": "punctuation.escape.backslash.slice"
2749
+ }
2750
+ }
2751
+ }
2752
+ ]
2753
+ }
2754
+ }
2755
+ }