tm-grammars 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/LICENSE +22 -0
  2. package/NOTICE +6565 -0
  3. package/README.md +211 -0
  4. package/grammars/abap.json +380 -0
  5. package/grammars/actionscript-3.json +951 -0
  6. package/grammars/ada.json +3874 -0
  7. package/grammars/apache.json +562 -0
  8. package/grammars/apex.json +3203 -0
  9. package/grammars/apl.json +1479 -0
  10. package/grammars/applescript.json +1406 -0
  11. package/grammars/ara.json +428 -0
  12. package/grammars/asm.json +1741 -0
  13. package/grammars/astro.json +776 -0
  14. package/grammars/awk.json +388 -0
  15. package/grammars/ballerina.json +3768 -0
  16. package/grammars/bat.json +783 -0
  17. package/grammars/beancount.json +831 -0
  18. package/grammars/berry.json +172 -0
  19. package/grammars/bibtex.json +315 -0
  20. package/grammars/bicep.json +239 -0
  21. package/grammars/blade.json +3870 -0
  22. package/grammars/c.json +3552 -0
  23. package/grammars/cadence.json +738 -0
  24. package/grammars/clarity.json +877 -0
  25. package/grammars/clojure.json +426 -0
  26. package/grammars/cmake.json +143 -0
  27. package/grammars/cobol.json +1124 -0
  28. package/grammars/codeql.json +1540 -0
  29. package/grammars/coffee.json +1311 -0
  30. package/grammars/cpp-macro.json +9498 -0
  31. package/grammars/cpp.json +16635 -0
  32. package/grammars/crystal.json +1866 -0
  33. package/grammars/csharp.json +5722 -0
  34. package/grammars/css.json +1860 -0
  35. package/grammars/csv.json +46 -0
  36. package/grammars/cue.json +1128 -0
  37. package/grammars/cypher.json +353 -0
  38. package/grammars/d.json +3185 -0
  39. package/grammars/dart.json +522 -0
  40. package/grammars/dax.json +185 -0
  41. package/grammars/diff.json +155 -0
  42. package/grammars/docker.json +97 -0
  43. package/grammars/dream-maker.json +640 -0
  44. package/grammars/elixir.json +1014 -0
  45. package/grammars/elm.json +751 -0
  46. package/grammars/erb.json +156 -0
  47. package/grammars/erlang.json +1757 -0
  48. package/grammars/fish.json +189 -0
  49. package/grammars/fsharp.json +1831 -0
  50. package/grammars/gdresource.json +290 -0
  51. package/grammars/gdscript.json +969 -0
  52. package/grammars/gdshader.json +405 -0
  53. package/grammars/gherkin.json +133 -0
  54. package/grammars/git-commit.json +85 -0
  55. package/grammars/git-rebase.json +56 -0
  56. package/grammars/glimmer-js.json +98 -0
  57. package/grammars/glimmer-ts.json +98 -0
  58. package/grammars/glsl.json +57 -0
  59. package/grammars/gnuplot.json +892 -0
  60. package/grammars/go.json +1012 -0
  61. package/grammars/graphql.json +1295 -0
  62. package/grammars/groovy.json +1378 -0
  63. package/grammars/hack.json +2650 -0
  64. package/grammars/haml.json +598 -0
  65. package/grammars/handlebars.json +848 -0
  66. package/grammars/haskell.json +2431 -0
  67. package/grammars/hcl.json +787 -0
  68. package/grammars/hjson.json +821 -0
  69. package/grammars/hlsl.json +212 -0
  70. package/grammars/html.json +93 -0
  71. package/grammars/imba.json +2696 -0
  72. package/grammars/ini.json +108 -0
  73. package/grammars/java.json +1885 -0
  74. package/grammars/javascript.json +5984 -0
  75. package/grammars/jinja-html.json +16 -0
  76. package/grammars/jinja.json +345 -0
  77. package/grammars/jison.json +715 -0
  78. package/grammars/jsdoc.json +21 -0
  79. package/grammars/json.json +208 -0
  80. package/grammars/json5.json +244 -0
  81. package/grammars/jsonc.json +208 -0
  82. package/grammars/jsonl.json +208 -0
  83. package/grammars/jsonnet.json +211 -0
  84. package/grammars/jssm.json +159 -0
  85. package/grammars/jsx.json +5984 -0
  86. package/grammars/julia.json +1061 -0
  87. package/grammars/kotlin.json +580 -0
  88. package/grammars/kusto.json +687 -0
  89. package/grammars/latex.json +2395 -0
  90. package/grammars/less.json +5012 -0
  91. package/grammars/liquid.json +990 -0
  92. package/grammars/lisp.json +121 -0
  93. package/grammars/logo.json +55 -0
  94. package/grammars/lua.json +956 -0
  95. package/grammars/make.json +629 -0
  96. package/grammars/markdown.json +3066 -0
  97. package/grammars/marko.json +1344 -0
  98. package/grammars/matlab.json +1131 -0
  99. package/grammars/mdc.json +571 -0
  100. package/grammars/mdx.json +5629 -0
  101. package/grammars/mermaid.json +1382 -0
  102. package/grammars/mojo.json +4153 -0
  103. package/grammars/narrat.json +227 -0
  104. package/grammars/nextflow.json +298 -0
  105. package/grammars/nginx.json +2121 -0
  106. package/grammars/nim.json +1522 -0
  107. package/grammars/nix.json +1200 -0
  108. package/grammars/nushell.json +1047 -0
  109. package/grammars/objective-c.json +3750 -0
  110. package/grammars/objective-cpp.json +7242 -0
  111. package/grammars/ocaml.json +2967 -0
  112. package/grammars/pascal.json +154 -0
  113. package/grammars/perl.json +2971 -0
  114. package/grammars/php.json +4024 -0
  115. package/grammars/plsql.json +241 -0
  116. package/grammars/postcss.json +377 -0
  117. package/grammars/powerquery.json +349 -0
  118. package/grammars/powershell.json +1024 -0
  119. package/grammars/prisma.json +443 -0
  120. package/grammars/prolog.json +298 -0
  121. package/grammars/proto.json +507 -0
  122. package/grammars/pug.json +1033 -0
  123. package/grammars/puppet.json +777 -0
  124. package/grammars/purescript.json +871 -0
  125. package/grammars/python.json +4208 -0
  126. package/grammars/r.json +637 -0
  127. package/grammars/raku.json +310 -0
  128. package/grammars/razor.json +1813 -0
  129. package/grammars/reg.json +136 -0
  130. package/grammars/rel.json +200 -0
  131. package/grammars/riscv.json +298 -0
  132. package/grammars/rst.json +734 -0
  133. package/grammars/ruby.json +2769 -0
  134. package/grammars/rust.json +1171 -0
  135. package/grammars/sas.json +302 -0
  136. package/grammars/sass.json +618 -0
  137. package/grammars/scala.json +1313 -0
  138. package/grammars/scheme.json +384 -0
  139. package/grammars/scss.json +1874 -0
  140. package/grammars/shaderlab.json +199 -0
  141. package/grammars/shellscript.json +2025 -0
  142. package/grammars/shellsession.json +33 -0
  143. package/grammars/smalltalk.json +235 -0
  144. package/grammars/solidity.json +1210 -0
  145. package/grammars/sparql.json +45 -0
  146. package/grammars/splunk.json +91 -0
  147. package/grammars/sql.json +631 -0
  148. package/grammars/ssh-config.json +88 -0
  149. package/grammars/stata.json +3050 -0
  150. package/grammars/stylus.json +1208 -0
  151. package/grammars/svelte.json +1171 -0
  152. package/grammars/swift.json +4203 -0
  153. package/grammars/system-verilog.json +1063 -0
  154. package/grammars/tasl.json +292 -0
  155. package/grammars/tcl.json +291 -0
  156. package/grammars/tex.json +281 -0
  157. package/grammars/toml.json +431 -0
  158. package/grammars/tsx.json +5984 -0
  159. package/grammars/turtle.json +261 -0
  160. package/grammars/twig.json +1394 -0
  161. package/grammars/typescript.json +5735 -0
  162. package/grammars/v.json +1001 -0
  163. package/grammars/vb.json +232 -0
  164. package/grammars/verilog.json +305 -0
  165. package/grammars/vhdl.json +1484 -0
  166. package/grammars/viml.json +445 -0
  167. package/grammars/vue-html.json +559 -0
  168. package/grammars/vue.json +1237 -0
  169. package/grammars/vyper.json +5415 -0
  170. package/grammars/wasm.json +831 -0
  171. package/grammars/wenyan.json +129 -0
  172. package/grammars/wgsl.json +391 -0
  173. package/grammars/wolfram.json +2370 -0
  174. package/grammars/xml.json +382 -0
  175. package/grammars/xsl.json +89 -0
  176. package/grammars/yaml.json +616 -0
  177. package/grammars/zenscript.json +257 -0
  178. package/grammars/zig.json +312 -0
  179. package/index.d.ts +18 -0
  180. package/index.js +2165 -0
  181. package/package.json +46 -0
@@ -0,0 +1,1128 @@
1
+ {
2
+ "displayName": "CUE",
3
+ "fileTypes": [
4
+ "cue"
5
+ ],
6
+ "name": "cue",
7
+ "patterns": [
8
+ {
9
+ "include": "#whitespace"
10
+ },
11
+ {
12
+ "include": "#comment"
13
+ },
14
+ {
15
+ "captures": {
16
+ "1": {
17
+ "name": "keyword.other.package"
18
+ },
19
+ "2": {
20
+ "name": "entity.name.namespace"
21
+ }
22
+ },
23
+ "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(package)[ \\t]+([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)(?![\\p{L}\\p{Nd}_\\$\\#])"
24
+ },
25
+ {
26
+ "patterns": [
27
+ {
28
+ "begin": "(?<![\\p{L}\\p{Nd}_\\$\\#])(import)[ \\t]+(\\()",
29
+ "beginCaptures": {
30
+ "1": {
31
+ "name": "keyword.other.import"
32
+ },
33
+ "2": {
34
+ "name": "punctuation.section.parens.begin"
35
+ }
36
+ },
37
+ "end": "\\)",
38
+ "endCaptures": {
39
+ "0": {
40
+ "name": "punctuation.section.parens.end"
41
+ }
42
+ },
43
+ "name": "meta.imports",
44
+ "patterns": [
45
+ {
46
+ "include": "#whitespace"
47
+ },
48
+ {
49
+ "include": "#comment"
50
+ },
51
+ {
52
+ "captures": {
53
+ "1": {
54
+ "name": "entity.name.namespace"
55
+ },
56
+ "2": {
57
+ "name": "punctuation.definition.string.begin"
58
+ },
59
+ "3": {
60
+ "name": "string.quoted.double-import"
61
+ },
62
+ "4": {
63
+ "name": "punctuation.colon"
64
+ },
65
+ "5": {
66
+ "name": "entity.name"
67
+ },
68
+ "6": {
69
+ "name": "punctuation.definition.string.end"
70
+ }
71
+ },
72
+ "match": "(?:([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)[ \\t]+)?(\")([^:\"]+)(?:(:)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*))?(\")",
73
+ "name": "meta.import-spec"
74
+ },
75
+ {
76
+ "match": ";",
77
+ "name": "punctuation.separator"
78
+ },
79
+ {
80
+ "include": "#invalid_in_parens"
81
+ }
82
+ ]
83
+ },
84
+ {
85
+ "captures": {
86
+ "1": {
87
+ "name": "keyword.other.import"
88
+ },
89
+ "2": {
90
+ "name": "entity.name.namespace"
91
+ },
92
+ "3": {
93
+ "name": "punctuation.definition.string.begin"
94
+ },
95
+ "4": {
96
+ "name": "string.quoted.double-import"
97
+ },
98
+ "5": {
99
+ "name": "punctuation.colon"
100
+ },
101
+ "6": {
102
+ "name": "entity.name"
103
+ },
104
+ "7": {
105
+ "name": "punctuation.definition.string.end"
106
+ }
107
+ },
108
+ "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(import)[ \\t]+(?:([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)[ \\t]+)?(\")([^:\"]+)(?:(:)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*))?(\")",
109
+ "name": "meta.import"
110
+ }
111
+ ]
112
+ },
113
+ {
114
+ "include": "#punctuation_comma"
115
+ },
116
+ {
117
+ "include": "#declaration"
118
+ },
119
+ {
120
+ "include": "#invalid_in_braces"
121
+ }
122
+ ],
123
+ "repository": {
124
+ "attribute_element": {
125
+ "patterns": [
126
+ {
127
+ "begin": "([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(=)",
128
+ "beginCaptures": {
129
+ "1": {
130
+ "name": "variable.other"
131
+ },
132
+ "2": {
133
+ "name": "punctuation.bind"
134
+ }
135
+ },
136
+ "end": "(?=[,\\)])",
137
+ "patterns": [
138
+ {
139
+ "include": "#attribute_string"
140
+ }
141
+ ]
142
+ },
143
+ {
144
+ "begin": "([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(\\()",
145
+ "beginCaptures": {
146
+ "1": {
147
+ "name": "variable.other"
148
+ },
149
+ "2": {
150
+ "name": "punctuation.attribute-elements.begin"
151
+ }
152
+ },
153
+ "end": "\\)",
154
+ "endCaptures": {
155
+ "0": {
156
+ "name": "punctuation.attribute-elements.end"
157
+ }
158
+ },
159
+ "patterns": [
160
+ {
161
+ "include": "#punctuation_comma"
162
+ },
163
+ {
164
+ "include": "#attribute_element"
165
+ }
166
+ ]
167
+ },
168
+ {
169
+ "include": "#attribute_string"
170
+ }
171
+ ]
172
+ },
173
+ "attribute_string": {
174
+ "patterns": [
175
+ {
176
+ "include": "#string"
177
+ },
178
+ {
179
+ "match": "[^\\n,\"'#=\\(\\)]+",
180
+ "name": "string.unquoted"
181
+ },
182
+ {
183
+ "match": "[^,\\)]+",
184
+ "name": "invalid"
185
+ }
186
+ ]
187
+ },
188
+ "comment": {
189
+ "patterns": [
190
+ {
191
+ "captures": {
192
+ "1": {
193
+ "name": "punctuation.definition.comment"
194
+ }
195
+ },
196
+ "match": "(//).*$\\n?",
197
+ "name": "comment.line"
198
+ },
199
+ {
200
+ "begin": "/\\*",
201
+ "captures": {
202
+ "0": {
203
+ "name": "punctuation.definition.comment"
204
+ }
205
+ },
206
+ "end": "\\*/",
207
+ "name": "comment.block"
208
+ }
209
+ ]
210
+ },
211
+ "declaration": {
212
+ "patterns": [
213
+ {
214
+ "begin": "(@)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(\\()",
215
+ "beginCaptures": {
216
+ "1": {
217
+ "name": "punctuation.definition.annotation"
218
+ },
219
+ "2": {
220
+ "name": "variable.annotation"
221
+ },
222
+ "3": {
223
+ "name": "punctuation.attribute-elements.begin"
224
+ }
225
+ },
226
+ "end": "\\)",
227
+ "endCaptures": {
228
+ "0": {
229
+ "name": "punctuation.attribute-elements.end"
230
+ }
231
+ },
232
+ "name": "meta.annotation",
233
+ "patterns": [
234
+ {
235
+ "include": "#punctuation_comma"
236
+ },
237
+ {
238
+ "include": "#attribute_element"
239
+ }
240
+ ]
241
+ },
242
+ {
243
+ "match": "(?<!:)::(?!:)",
244
+ "name": "punctuation.isa"
245
+ },
246
+ {
247
+ "include": "#punctuation_colon"
248
+ },
249
+ {
250
+ "match": "\\?",
251
+ "name": "punctuation.option"
252
+ },
253
+ {
254
+ "match": "(?<![=!><])=(?![=~])",
255
+ "name": "punctuation.bind"
256
+ },
257
+ {
258
+ "match": "<-",
259
+ "name": "punctuation.arrow"
260
+ },
261
+ {
262
+ "include": "#expression"
263
+ }
264
+ ]
265
+ },
266
+ "expression": {
267
+ "patterns": [
268
+ {
269
+ "patterns": [
270
+ {
271
+ "captures": {
272
+ "1": {
273
+ "name": "keyword.control.for"
274
+ },
275
+ "2": {
276
+ "name": "variable.other"
277
+ },
278
+ "3": {
279
+ "name": "punctuation.separator"
280
+ },
281
+ "4": {
282
+ "name": "variable.other"
283
+ },
284
+ "5": {
285
+ "name": "keyword.control.in"
286
+ }
287
+ },
288
+ "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(for)[ \\t]+([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(?:[ \\t]*(,)[ \\t]*([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+))?[ \\t]+(in)(?![\\p{L}\\p{Nd}_\\$\\#])"
289
+ },
290
+ {
291
+ "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])if(?![\\p{L}\\p{Nd}_\\$\\#])",
292
+ "name": "keyword.control.conditional"
293
+ },
294
+ {
295
+ "captures": {
296
+ "1": {
297
+ "name": "keyword.control.let"
298
+ },
299
+ "2": {
300
+ "name": "variable.other"
301
+ },
302
+ "3": {
303
+ "name": "punctuation.bind"
304
+ }
305
+ },
306
+ "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(let)[ \\t]+([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)[ \\t]*(=)(?![=])"
307
+ }
308
+ ]
309
+ },
310
+ {
311
+ "patterns": [
312
+ {
313
+ "match": "[\\+\\-\\*]|/(?![/*])",
314
+ "name": "keyword.operator"
315
+ },
316
+ {
317
+ "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:div|mod|quo|rem)(?![\\p{L}\\p{Nd}_\\$\\#])",
318
+ "name": "keyword.operator.word"
319
+ },
320
+ {
321
+ "match": "=[=~]|![=~]|<=|>=|[<](?![-=])|[>](?![=])",
322
+ "name": "keyword.operator.comparison"
323
+ },
324
+ {
325
+ "match": "&{2}|\\|{2}|!(?![=~])",
326
+ "name": "keyword.operator.logical"
327
+ },
328
+ {
329
+ "match": "&(?!&)|\\|(?!\\|)",
330
+ "name": "keyword.operator.set"
331
+ }
332
+ ]
333
+ },
334
+ {
335
+ "captures": {
336
+ "1": {
337
+ "name": "punctuation.accessor"
338
+ },
339
+ "2": {
340
+ "name": "variable.other.member"
341
+ }
342
+ },
343
+ "match": "(?<!\\.)(\\.)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(?![\\p{L}\\p{Nd}_\\$\\#])"
344
+ },
345
+ {
346
+ "patterns": [
347
+ {
348
+ "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])_(?!\\|)(?![\\p{L}\\p{Nd}_\\$\\#])",
349
+ "name": "constant.language.top"
350
+ },
351
+ {
352
+ "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])_\\|_(?![\\p{L}\\p{Nd}_\\$\\#])",
353
+ "name": "constant.language.bottom"
354
+ },
355
+ {
356
+ "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])null(?![\\p{L}\\p{Nd}_\\$\\#])",
357
+ "name": "constant.language.null"
358
+ },
359
+ {
360
+ "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:true|false)(?![\\p{L}\\p{Nd}_\\$\\#])",
361
+ "name": "constant.language.bool"
362
+ },
363
+ {
364
+ "patterns": [
365
+ {
366
+ "patterns": [
367
+ {
368
+ "match": "(?<![\\p{L}\\p{Nd}_\\.])[0-9](?:_?[0-9])*\\.(?:[0-9](?:_?[0-9])*)?(?:[eE][\\+\\-]?[0-9](?:_?[0-9])*)?(?![\\p{L}\\p{Nd}_\\.])",
369
+ "name": "constant.numeric.float.decimal"
370
+ },
371
+ {
372
+ "match": "(?<![\\p{L}\\p{Nd}_\\.])[0-9](?:_?[0-9])*[eE][\\+\\-]?[0-9](?:_?[0-9])*(?![\\p{L}\\p{Nd}_\\.])",
373
+ "name": "constant.numeric.float.decimal"
374
+ },
375
+ {
376
+ "match": "(?<![\\p{L}\\p{Nd}_\\.])\\.[0-9](?:_?[0-9])*(?:[eE][\\+\\-]?[0-9](?:_?[0-9])*)?(?![\\p{L}\\p{Nd}_\\.])",
377
+ "name": "constant.numeric.float.decimal"
378
+ }
379
+ ]
380
+ },
381
+ {
382
+ "patterns": [
383
+ {
384
+ "patterns": [
385
+ {
386
+ "match": "(?<![\\p{L}\\p{Nd}_\\.])(?:0|[1-9](?:_?[0-9])*)(?:\\.[0-9](?:_?[0-9])*)?(?:[KMGTPEYZ]i?)(?![\\p{L}\\p{Nd}_\\.])",
387
+ "name": "constant.numeric.integer.other"
388
+ },
389
+ {
390
+ "match": "(?<![\\p{L}\\p{Nd}_\\.])\\.[0-9](?:_?[0-9])*(?:[KMGTPEYZ]i?)(?![\\p{L}\\p{Nd}_\\.])",
391
+ "name": "constant.numeric.integer.other"
392
+ }
393
+ ]
394
+ },
395
+ {
396
+ "match": "(?<![\\p{L}\\p{Nd}_\\.])(?:0|[1-9](?:_?[0-9])*)(?![\\p{L}\\p{Nd}_\\.])",
397
+ "name": "constant.numeric.integer.decimal"
398
+ },
399
+ {
400
+ "match": "(?<![\\p{L}\\p{Nd}_\\.])0b[0-1](?:_?[0-1])*(?![\\p{L}\\p{Nd}_\\.])",
401
+ "name": "constant.numeric.integer.binary"
402
+ },
403
+ {
404
+ "match": "(?<![\\p{L}\\p{Nd}_\\.])0[xX][0-9a-fA-F](?:_?[0-9a-fA-F])*(?![\\p{L}\\p{Nd}_\\.])",
405
+ "name": "constant.numeric.integer.hexadecimal"
406
+ },
407
+ {
408
+ "match": "(?<![\\p{L}\\p{Nd}_\\.])0o?[0-7](?:_?[0-7])*(?![\\p{L}\\p{Nd}_\\.])",
409
+ "name": "constant.numeric.integer.octal"
410
+ }
411
+ ]
412
+ }
413
+ ]
414
+ },
415
+ {
416
+ "include": "#string"
417
+ },
418
+ {
419
+ "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:bool|u?int(?:8|16|32|64|128)?|float(?:32|64)?|string|bytes|number|rune)(?![\\p{L}\\p{Nd}_\\$\\#])",
420
+ "name": "support.type"
421
+ },
422
+ {
423
+ "patterns": [
424
+ {
425
+ "begin": "(?<![\\p{L}\\p{Nd}_\\$\\#])(len|close|and|or)(\\()",
426
+ "beginCaptures": {
427
+ "1": {
428
+ "name": "support.function"
429
+ },
430
+ "2": {
431
+ "name": "punctuation.section.parens.begin"
432
+ }
433
+ },
434
+ "end": "\\)",
435
+ "endCaptures": {
436
+ "0": {
437
+ "name": "punctuation.section.parens.end"
438
+ }
439
+ },
440
+ "name": "meta.function-call",
441
+ "patterns": [
442
+ {
443
+ "include": "#whitespace"
444
+ },
445
+ {
446
+ "include": "#comment"
447
+ },
448
+ {
449
+ "include": "#punctuation_comma"
450
+ },
451
+ {
452
+ "include": "#expression"
453
+ },
454
+ {
455
+ "include": "#invalid_in_parens"
456
+ }
457
+ ]
458
+ },
459
+ {
460
+ "begin": "(?<![\\p{L}\\p{Nd}_\\$\\#])([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)(\\.)(\\p{Lu}[\\p{L}\\p{Nd}_\\$\\#]*)(\\()",
461
+ "beginCaptures": {
462
+ "1": {
463
+ "name": "support.module"
464
+ },
465
+ "2": {
466
+ "name": "punctuation"
467
+ },
468
+ "3": {
469
+ "name": "support.function"
470
+ },
471
+ "4": {
472
+ "name": "punctuation.section.parens.begin"
473
+ }
474
+ },
475
+ "end": "\\)",
476
+ "endCaptures": {
477
+ "0": {
478
+ "name": "punctuation.section.parens.end"
479
+ }
480
+ },
481
+ "name": "meta.function-call",
482
+ "patterns": [
483
+ {
484
+ "include": "#whitespace"
485
+ },
486
+ {
487
+ "include": "#comment"
488
+ },
489
+ {
490
+ "include": "#punctuation_comma"
491
+ },
492
+ {
493
+ "include": "#expression"
494
+ },
495
+ {
496
+ "include": "#invalid_in_parens"
497
+ }
498
+ ]
499
+ }
500
+ ]
501
+ },
502
+ {
503
+ "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:[\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(?![\\p{L}\\p{Nd}_\\$\\#])",
504
+ "name": "variable.other"
505
+ },
506
+ {
507
+ "begin": "\\{",
508
+ "beginCaptures": {
509
+ "0": {
510
+ "name": "punctuation.definition.struct.begin"
511
+ }
512
+ },
513
+ "end": "\\}",
514
+ "endCaptures": {
515
+ "0": {
516
+ "name": "punctuation.definition.struct.end"
517
+ }
518
+ },
519
+ "name": "meta.struct",
520
+ "patterns": [
521
+ {
522
+ "include": "#whitespace"
523
+ },
524
+ {
525
+ "include": "#comment"
526
+ },
527
+ {
528
+ "include": "#punctuation_comma"
529
+ },
530
+ {
531
+ "include": "#punctuation_ellipsis"
532
+ },
533
+ {
534
+ "include": "#declaration"
535
+ },
536
+ {
537
+ "include": "#invalid_in_braces"
538
+ }
539
+ ]
540
+ },
541
+ {
542
+ "begin": "\\[",
543
+ "beginCaptures": {
544
+ "0": {
545
+ "name": "punctuation.section.brackets.begin"
546
+ }
547
+ },
548
+ "end": "\\]",
549
+ "endCaptures": {
550
+ "0": {
551
+ "name": "punctuation.section.brackets.end"
552
+ }
553
+ },
554
+ "name": "meta.brackets",
555
+ "patterns": [
556
+ {
557
+ "include": "#whitespace"
558
+ },
559
+ {
560
+ "include": "#comment"
561
+ },
562
+ {
563
+ "include": "#punctuation_colon"
564
+ },
565
+ {
566
+ "include": "#punctuation_comma"
567
+ },
568
+ {
569
+ "include": "#punctuation_ellipsis"
570
+ },
571
+ {
572
+ "captures": {
573
+ "1": {
574
+ "name": "variable.other"
575
+ },
576
+ "2": {
577
+ "name": "punctuation.alias"
578
+ }
579
+ },
580
+ "match": "([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)[ \\t]*(=)"
581
+ },
582
+ {
583
+ "include": "#expression"
584
+ },
585
+ {
586
+ "match": "[^\\]]+",
587
+ "name": "invalid"
588
+ }
589
+ ]
590
+ },
591
+ {
592
+ "begin": "\\(",
593
+ "beginCaptures": {
594
+ "0": {
595
+ "name": "punctuation.section.parens.begin"
596
+ }
597
+ },
598
+ "end": "\\)",
599
+ "endCaptures": {
600
+ "0": {
601
+ "name": "punctuation.section.parens.end"
602
+ }
603
+ },
604
+ "name": "meta.parens",
605
+ "patterns": [
606
+ {
607
+ "include": "#whitespace"
608
+ },
609
+ {
610
+ "include": "#comment"
611
+ },
612
+ {
613
+ "include": "#punctuation_comma"
614
+ },
615
+ {
616
+ "include": "#expression"
617
+ },
618
+ {
619
+ "include": "#invalid_in_parens"
620
+ }
621
+ ]
622
+ }
623
+ ]
624
+ }
625
+ ]
626
+ },
627
+ "invalid_in_braces": {
628
+ "match": "[^\\}]+",
629
+ "name": "invalid"
630
+ },
631
+ "invalid_in_parens": {
632
+ "match": "[^\\)]+",
633
+ "name": "invalid"
634
+ },
635
+ "punctuation_colon": {
636
+ "match": "(?<!:):(?!:)",
637
+ "name": "punctuation.colon"
638
+ },
639
+ "punctuation_comma": {
640
+ "match": ",",
641
+ "name": "punctuation.separator"
642
+ },
643
+ "punctuation_ellipsis": {
644
+ "match": "(?<!\\.)\\.{3}(?!\\.)",
645
+ "name": "punctuation.ellipsis"
646
+ },
647
+ "string": {
648
+ "patterns": [
649
+ {
650
+ "begin": "#\"\"\"",
651
+ "beginCaptures": {
652
+ "0": {
653
+ "name": "punctuation.definition.string.begin"
654
+ }
655
+ },
656
+ "contentName": "string.quoted.double-multiline",
657
+ "end": "\"\"\"#",
658
+ "endCaptures": {
659
+ "0": {
660
+ "name": "punctuation.definition.string.end"
661
+ }
662
+ },
663
+ "name": "meta.string",
664
+ "patterns": [
665
+ {
666
+ "match": "\\\\#(?:\"\"\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
667
+ "name": "constant.character.escape"
668
+ },
669
+ {
670
+ "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
671
+ "name": "invalid.illegal"
672
+ },
673
+ {
674
+ "begin": "\\\\#\\(",
675
+ "beginCaptures": {
676
+ "0": {
677
+ "name": "punctuation.section.interpolation.begin"
678
+ }
679
+ },
680
+ "contentName": "source.cue.embedded",
681
+ "end": "\\)",
682
+ "endCaptures": {
683
+ "0": {
684
+ "name": "punctuation.section.interpolation.end"
685
+ }
686
+ },
687
+ "name": "meta.interpolation",
688
+ "patterns": [
689
+ {
690
+ "include": "#whitespace"
691
+ },
692
+ {
693
+ "include": "#expression"
694
+ },
695
+ {
696
+ "include": "#invalid_in_parens"
697
+ }
698
+ ]
699
+ },
700
+ {
701
+ "match": "\\\\#.",
702
+ "name": "invalid.illegal"
703
+ }
704
+ ]
705
+ },
706
+ {
707
+ "begin": "#\"",
708
+ "beginCaptures": {
709
+ "0": {
710
+ "name": "punctuation.definition.string.begin"
711
+ }
712
+ },
713
+ "contentName": "string.quoted.double",
714
+ "end": "\"#",
715
+ "endCaptures": {
716
+ "0": {
717
+ "name": "punctuation.definition.string.end"
718
+ }
719
+ },
720
+ "name": "meta.string",
721
+ "patterns": [
722
+ {
723
+ "match": "\\\\#(?:\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
724
+ "name": "constant.character.escape"
725
+ },
726
+ {
727
+ "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
728
+ "name": "invalid.illegal"
729
+ },
730
+ {
731
+ "begin": "\\\\#\\(",
732
+ "beginCaptures": {
733
+ "0": {
734
+ "name": "punctuation.section.interpolation.begin"
735
+ }
736
+ },
737
+ "contentName": "source.cue.embedded",
738
+ "end": "\\)",
739
+ "endCaptures": {
740
+ "0": {
741
+ "name": "punctuation.section.interpolation.end"
742
+ }
743
+ },
744
+ "name": "meta.interpolation",
745
+ "patterns": [
746
+ {
747
+ "include": "#whitespace"
748
+ },
749
+ {
750
+ "include": "#expression"
751
+ },
752
+ {
753
+ "include": "#invalid_in_parens"
754
+ }
755
+ ]
756
+ },
757
+ {
758
+ "match": "\\\\#.",
759
+ "name": "invalid.illegal"
760
+ }
761
+ ]
762
+ },
763
+ {
764
+ "begin": "#'''",
765
+ "beginCaptures": {
766
+ "0": {
767
+ "name": "punctuation.definition.string.begin"
768
+ }
769
+ },
770
+ "contentName": "string.quoted.single-multiline",
771
+ "end": "'''#",
772
+ "endCaptures": {
773
+ "0": {
774
+ "name": "punctuation.definition.string.end"
775
+ }
776
+ },
777
+ "name": "meta.string",
778
+ "patterns": [
779
+ {
780
+ "match": "\\\\#(?:'''|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
781
+ "name": "constant.character.escape"
782
+ },
783
+ {
784
+ "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
785
+ "name": "constant.character.escape"
786
+ },
787
+ {
788
+ "begin": "\\\\#\\(",
789
+ "beginCaptures": {
790
+ "0": {
791
+ "name": "punctuation.section.interpolation.begin"
792
+ }
793
+ },
794
+ "contentName": "source.cue.embedded",
795
+ "end": "\\)",
796
+ "endCaptures": {
797
+ "0": {
798
+ "name": "punctuation.section.interpolation.end"
799
+ }
800
+ },
801
+ "name": "meta.interpolation",
802
+ "patterns": [
803
+ {
804
+ "include": "#whitespace"
805
+ },
806
+ {
807
+ "include": "#expression"
808
+ },
809
+ {
810
+ "include": "#invalid_in_parens"
811
+ }
812
+ ]
813
+ },
814
+ {
815
+ "match": "\\\\#.",
816
+ "name": "invalid.illegal"
817
+ }
818
+ ]
819
+ },
820
+ {
821
+ "begin": "#'",
822
+ "beginCaptures": {
823
+ "0": {
824
+ "name": "punctuation.definition.string.begin"
825
+ }
826
+ },
827
+ "contentName": "string.quoted.single",
828
+ "end": "'#",
829
+ "endCaptures": {
830
+ "0": {
831
+ "name": "punctuation.definition.string.end"
832
+ }
833
+ },
834
+ "name": "meta.string",
835
+ "patterns": [
836
+ {
837
+ "match": "\\\\#(?:'|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
838
+ "name": "constant.character.escape"
839
+ },
840
+ {
841
+ "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
842
+ "name": "constant.character.escape"
843
+ },
844
+ {
845
+ "begin": "\\\\#\\(",
846
+ "beginCaptures": {
847
+ "0": {
848
+ "name": "punctuation.section.interpolation.begin"
849
+ }
850
+ },
851
+ "contentName": "source.cue.embedded",
852
+ "end": "\\)",
853
+ "endCaptures": {
854
+ "0": {
855
+ "name": "punctuation.section.interpolation.end"
856
+ }
857
+ },
858
+ "name": "meta.interpolation",
859
+ "patterns": [
860
+ {
861
+ "include": "#whitespace"
862
+ },
863
+ {
864
+ "include": "#expression"
865
+ },
866
+ {
867
+ "include": "#invalid_in_parens"
868
+ }
869
+ ]
870
+ },
871
+ {
872
+ "match": "\\\\#.",
873
+ "name": "invalid.illegal"
874
+ }
875
+ ]
876
+ },
877
+ {
878
+ "begin": "\"\"\"",
879
+ "beginCaptures": {
880
+ "0": {
881
+ "name": "punctuation.definition.string.begin"
882
+ }
883
+ },
884
+ "contentName": "string.quoted.double-multiline",
885
+ "end": "\"\"\"",
886
+ "endCaptures": {
887
+ "0": {
888
+ "name": "punctuation.definition.string.end"
889
+ }
890
+ },
891
+ "name": "meta.string",
892
+ "patterns": [
893
+ {
894
+ "match": "\\\\(?:\"\"\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
895
+ "name": "constant.character.escape"
896
+ },
897
+ {
898
+ "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
899
+ "name": "invalid.illegal"
900
+ },
901
+ {
902
+ "begin": "\\\\\\(",
903
+ "beginCaptures": {
904
+ "0": {
905
+ "name": "punctuation.section.interpolation.begin"
906
+ }
907
+ },
908
+ "contentName": "source.cue.embedded",
909
+ "end": "\\)",
910
+ "endCaptures": {
911
+ "0": {
912
+ "name": "punctuation.section.interpolation.end"
913
+ }
914
+ },
915
+ "name": "meta.interpolation",
916
+ "patterns": [
917
+ {
918
+ "include": "#whitespace"
919
+ },
920
+ {
921
+ "include": "#expression"
922
+ },
923
+ {
924
+ "include": "#invalid_in_parens"
925
+ }
926
+ ]
927
+ },
928
+ {
929
+ "match": "\\\\.",
930
+ "name": "invalid.illegal"
931
+ }
932
+ ]
933
+ },
934
+ {
935
+ "begin": "\"",
936
+ "beginCaptures": {
937
+ "0": {
938
+ "name": "punctuation.definition.string.begin"
939
+ }
940
+ },
941
+ "contentName": "string.quoted.double",
942
+ "end": "\"",
943
+ "endCaptures": {
944
+ "0": {
945
+ "name": "punctuation.definition.string.end"
946
+ }
947
+ },
948
+ "name": "meta.string",
949
+ "patterns": [
950
+ {
951
+ "match": "\\\\(?:\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
952
+ "name": "constant.character.escape"
953
+ },
954
+ {
955
+ "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
956
+ "name": "invalid.illegal"
957
+ },
958
+ {
959
+ "begin": "\\\\\\(",
960
+ "beginCaptures": {
961
+ "0": {
962
+ "name": "punctuation.section.interpolation.begin"
963
+ }
964
+ },
965
+ "contentName": "source.cue.embedded",
966
+ "end": "\\)",
967
+ "endCaptures": {
968
+ "0": {
969
+ "name": "punctuation.section.interpolation.end"
970
+ }
971
+ },
972
+ "name": "meta.interpolation",
973
+ "patterns": [
974
+ {
975
+ "include": "#whitespace"
976
+ },
977
+ {
978
+ "include": "#expression"
979
+ },
980
+ {
981
+ "include": "#invalid_in_parens"
982
+ }
983
+ ]
984
+ },
985
+ {
986
+ "match": "\\\\.",
987
+ "name": "invalid.illegal"
988
+ }
989
+ ]
990
+ },
991
+ {
992
+ "begin": "'''",
993
+ "beginCaptures": {
994
+ "0": {
995
+ "name": "punctuation.definition.string.begin"
996
+ }
997
+ },
998
+ "contentName": "string.quoted.single-multiline",
999
+ "end": "'''",
1000
+ "endCaptures": {
1001
+ "0": {
1002
+ "name": "punctuation.definition.string.end"
1003
+ }
1004
+ },
1005
+ "name": "meta.string",
1006
+ "patterns": [
1007
+ {
1008
+ "match": "\\\\(?:'''|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
1009
+ "name": "constant.character.escape"
1010
+ },
1011
+ {
1012
+ "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
1013
+ "name": "constant.character.escape"
1014
+ },
1015
+ {
1016
+ "begin": "\\\\\\(",
1017
+ "beginCaptures": {
1018
+ "0": {
1019
+ "name": "punctuation.section.interpolation.begin"
1020
+ }
1021
+ },
1022
+ "contentName": "source.cue.embedded",
1023
+ "end": "\\)",
1024
+ "endCaptures": {
1025
+ "0": {
1026
+ "name": "punctuation.section.interpolation.end"
1027
+ }
1028
+ },
1029
+ "name": "meta.interpolation",
1030
+ "patterns": [
1031
+ {
1032
+ "include": "#whitespace"
1033
+ },
1034
+ {
1035
+ "include": "#expression"
1036
+ },
1037
+ {
1038
+ "include": "#invalid_in_parens"
1039
+ }
1040
+ ]
1041
+ },
1042
+ {
1043
+ "match": "\\\\.",
1044
+ "name": "invalid.illegal"
1045
+ }
1046
+ ]
1047
+ },
1048
+ {
1049
+ "begin": "'",
1050
+ "beginCaptures": {
1051
+ "0": {
1052
+ "name": "punctuation.definition.string.begin"
1053
+ }
1054
+ },
1055
+ "contentName": "string.quoted.single",
1056
+ "end": "'",
1057
+ "endCaptures": {
1058
+ "0": {
1059
+ "name": "punctuation.definition.string.end"
1060
+ }
1061
+ },
1062
+ "name": "meta.string",
1063
+ "patterns": [
1064
+ {
1065
+ "match": "\\\\(?:'|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
1066
+ "name": "constant.character.escape"
1067
+ },
1068
+ {
1069
+ "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})",
1070
+ "name": "constant.character.escape"
1071
+ },
1072
+ {
1073
+ "begin": "\\\\\\(",
1074
+ "beginCaptures": {
1075
+ "0": {
1076
+ "name": "punctuation.section.interpolation.begin"
1077
+ }
1078
+ },
1079
+ "contentName": "source.cue.embedded",
1080
+ "end": "\\)",
1081
+ "endCaptures": {
1082
+ "0": {
1083
+ "name": "punctuation.section.interpolation.end"
1084
+ }
1085
+ },
1086
+ "name": "meta.interpolation",
1087
+ "patterns": [
1088
+ {
1089
+ "include": "#whitespace"
1090
+ },
1091
+ {
1092
+ "include": "#expression"
1093
+ },
1094
+ {
1095
+ "include": "#invalid_in_parens"
1096
+ }
1097
+ ]
1098
+ },
1099
+ {
1100
+ "match": "\\\\.",
1101
+ "name": "invalid.illegal"
1102
+ }
1103
+ ]
1104
+ },
1105
+ {
1106
+ "begin": "`",
1107
+ "beginCaptures": {
1108
+ "0": {
1109
+ "name": "punctuation.definition.string.begin"
1110
+ }
1111
+ },
1112
+ "contentName": "string.quoted.backtick",
1113
+ "end": "`",
1114
+ "endCaptures": {
1115
+ "0": {
1116
+ "name": "punctuation.definition.string.end"
1117
+ }
1118
+ },
1119
+ "name": "meta.string"
1120
+ }
1121
+ ]
1122
+ },
1123
+ "whitespace": {
1124
+ "match": "[ \\t\\r\\n]+"
1125
+ }
1126
+ },
1127
+ "scopeName": "source.cue"
1128
+ }