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,1171 @@
1
+ {
2
+ "displayName": "Svelte",
3
+ "fileTypes": [
4
+ "svelte"
5
+ ],
6
+ "injections": {
7
+ "L:(meta.script.svelte | meta.style.svelte) (meta.lang.js | meta.lang.javascript) - (meta source)": {
8
+ "patterns": [
9
+ {
10
+ "begin": "(?<=>)(?!</)",
11
+ "contentName": "source.js",
12
+ "end": "(?=</)",
13
+ "name": "meta.embedded.block.svelte",
14
+ "patterns": [
15
+ {
16
+ "include": "source.js"
17
+ }
18
+ ]
19
+ }
20
+ ]
21
+ },
22
+ "L:(meta.script.svelte | meta.style.svelte) (meta.lang.ts | meta.lang.typescript) - (meta source)": {
23
+ "patterns": [
24
+ {
25
+ "begin": "(?<=>)(?!</)",
26
+ "contentName": "source.ts",
27
+ "end": "(?=</)",
28
+ "name": "meta.embedded.block.svelte",
29
+ "patterns": [
30
+ {
31
+ "include": "source.ts"
32
+ }
33
+ ]
34
+ }
35
+ ]
36
+ },
37
+ "L:(meta.script.svelte | meta.style.svelte) meta.lang.coffee - (meta source)": {
38
+ "patterns": [
39
+ {
40
+ "begin": "(?<=>)(?!</)",
41
+ "contentName": "source.coffee",
42
+ "end": "(?=</)",
43
+ "name": "meta.embedded.block.svelte",
44
+ "patterns": [
45
+ {
46
+ "include": "source.coffee"
47
+ }
48
+ ]
49
+ }
50
+ ]
51
+ },
52
+ "L:(source.ts, source.js, source.coffee)": {
53
+ "patterns": [
54
+ {
55
+ "match": "(?<![_$./'\"[:alnum:]])\\$(?=[_[:alpha:]][_$[:alnum:]]*)",
56
+ "name": "punctuation.definition.variable.svelte"
57
+ },
58
+ {
59
+ "match": "(?<![_$./'\"[:alnum:]])(\\$\\$)(?=props|restProps|slots)",
60
+ "name": "punctuation.definition.variable.svelte"
61
+ }
62
+ ]
63
+ },
64
+ "L:meta.script.svelte - meta.lang - (meta source)": {
65
+ "patterns": [
66
+ {
67
+ "begin": "(?<=>)(?!</)",
68
+ "contentName": "source.js",
69
+ "end": "(?=</)",
70
+ "name": "meta.embedded.block.svelte",
71
+ "patterns": [
72
+ {
73
+ "include": "source.js"
74
+ }
75
+ ]
76
+ }
77
+ ]
78
+ },
79
+ "L:meta.style.svelte - meta.lang - (meta source)": {
80
+ "patterns": [
81
+ {
82
+ "begin": "(?<=>)(?!</)",
83
+ "contentName": "source.css",
84
+ "end": "(?=</)",
85
+ "name": "meta.embedded.block.svelte",
86
+ "patterns": [
87
+ {
88
+ "include": "source.css"
89
+ }
90
+ ]
91
+ }
92
+ ]
93
+ },
94
+ "L:meta.style.svelte meta.lang.css - (meta source)": {
95
+ "patterns": [
96
+ {
97
+ "begin": "(?<=>)(?!</)",
98
+ "contentName": "source.css",
99
+ "end": "(?=</)",
100
+ "name": "meta.embedded.block.svelte",
101
+ "patterns": [
102
+ {
103
+ "include": "source.css"
104
+ }
105
+ ]
106
+ }
107
+ ]
108
+ },
109
+ "L:meta.style.svelte meta.lang.less - (meta source)": {
110
+ "patterns": [
111
+ {
112
+ "begin": "(?<=>)(?!</)",
113
+ "contentName": "source.css.less",
114
+ "end": "(?=</)",
115
+ "name": "meta.embedded.block.svelte",
116
+ "patterns": [
117
+ {
118
+ "include": "source.css.less"
119
+ }
120
+ ]
121
+ }
122
+ ]
123
+ },
124
+ "L:meta.style.svelte meta.lang.postcss - (meta source)": {
125
+ "patterns": [
126
+ {
127
+ "begin": "(?<=>)(?!</)",
128
+ "contentName": "source.css.postcss",
129
+ "end": "(?=</)",
130
+ "name": "meta.embedded.block.svelte",
131
+ "patterns": [
132
+ {
133
+ "include": "source.css.postcss"
134
+ }
135
+ ]
136
+ }
137
+ ]
138
+ },
139
+ "L:meta.style.svelte meta.lang.sass - (meta source)": {
140
+ "patterns": [
141
+ {
142
+ "begin": "(?<=>)(?!</)",
143
+ "contentName": "source.sass",
144
+ "end": "(?=</)",
145
+ "name": "meta.embedded.block.svelte",
146
+ "patterns": [
147
+ {
148
+ "include": "source.sass"
149
+ }
150
+ ]
151
+ }
152
+ ]
153
+ },
154
+ "L:meta.style.svelte meta.lang.scss - (meta source)": {
155
+ "patterns": [
156
+ {
157
+ "begin": "(?<=>)(?!</)",
158
+ "contentName": "source.css.scss",
159
+ "end": "(?=</)",
160
+ "name": "meta.embedded.block.svelte",
161
+ "patterns": [
162
+ {
163
+ "include": "source.css.scss"
164
+ }
165
+ ]
166
+ }
167
+ ]
168
+ },
169
+ "L:meta.style.svelte meta.lang.stylus - (meta source)": {
170
+ "patterns": [
171
+ {
172
+ "begin": "(?<=>)(?!</)",
173
+ "contentName": "source.stylus",
174
+ "end": "(?=</)",
175
+ "name": "meta.embedded.block.svelte",
176
+ "patterns": [
177
+ {
178
+ "include": "source.stylus"
179
+ }
180
+ ]
181
+ }
182
+ ]
183
+ },
184
+ "L:meta.template.svelte - meta.lang - (meta source)": {
185
+ "patterns": [
186
+ {
187
+ "begin": "(?<=>)\\s",
188
+ "end": "(?=</template)",
189
+ "patterns": [
190
+ {
191
+ "include": "#scope"
192
+ }
193
+ ]
194
+ }
195
+ ]
196
+ },
197
+ "L:meta.template.svelte meta.lang.pug - (meta source)": {
198
+ "patterns": [
199
+ {
200
+ "begin": "(?<=>)(?!</)",
201
+ "contentName": "text.pug",
202
+ "end": "(?=</)",
203
+ "name": "meta.embedded.block.svelte",
204
+ "patterns": [
205
+ {
206
+ "include": "text.pug"
207
+ }
208
+ ]
209
+ }
210
+ ]
211
+ }
212
+ },
213
+ "name": "svelte",
214
+ "patterns": [
215
+ {
216
+ "include": "#scope"
217
+ }
218
+ ],
219
+ "repository": {
220
+ "attributes": {
221
+ "patterns": [
222
+ {
223
+ "include": "#attributes-directives"
224
+ },
225
+ {
226
+ "include": "#attributes-keyvalue"
227
+ },
228
+ {
229
+ "include": "#attributes-interpolated"
230
+ }
231
+ ]
232
+ },
233
+ "attributes-directives": {
234
+ "begin": "(?<!<)(on|use|bind|transition|in|out|animate|let|class|style)(:)(?:((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*(?=\\s*=))|((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*))((\\|\\w+)*)",
235
+ "beginCaptures": {
236
+ "1": {
237
+ "patterns": [
238
+ {
239
+ "include": "#attributes-directives-keywords"
240
+ }
241
+ ]
242
+ },
243
+ "2": {
244
+ "name": "punctuation.definition.keyword.svelte"
245
+ },
246
+ "3": {
247
+ "patterns": [
248
+ {
249
+ "include": "#attributes-directives-types-assigned"
250
+ }
251
+ ]
252
+ },
253
+ "4": {
254
+ "patterns": [
255
+ {
256
+ "include": "#attributes-directives-types"
257
+ }
258
+ ]
259
+ },
260
+ "5": {
261
+ "patterns": [
262
+ {
263
+ "match": "\\w+",
264
+ "name": "support.function.svelte"
265
+ },
266
+ {
267
+ "match": "\\|",
268
+ "name": "punctuation.separator.svelte"
269
+ }
270
+ ]
271
+ }
272
+ },
273
+ "end": "(?=\\s*+[^=\\s])",
274
+ "name": "meta.directive.$1.svelte",
275
+ "patterns": [
276
+ {
277
+ "begin": "=",
278
+ "beginCaptures": {
279
+ "0": {
280
+ "name": "punctuation.separator.key-value.svelte"
281
+ }
282
+ },
283
+ "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)",
284
+ "patterns": [
285
+ {
286
+ "include": "#attributes-value"
287
+ }
288
+ ]
289
+ }
290
+ ]
291
+ },
292
+ "attributes-directives-keywords": {
293
+ "patterns": [
294
+ {
295
+ "match": "on|use|bind",
296
+ "name": "keyword.control.svelte"
297
+ },
298
+ {
299
+ "match": "transition|in|out|animate",
300
+ "name": "keyword.other.animation.svelte"
301
+ },
302
+ {
303
+ "match": "let",
304
+ "name": "storage.type.svelte"
305
+ },
306
+ {
307
+ "match": "class|style",
308
+ "name": "entity.other.attribute-name.svelte"
309
+ }
310
+ ]
311
+ },
312
+ "attributes-directives-types": {
313
+ "patterns": [
314
+ {
315
+ "match": "(?<=(on):).*$",
316
+ "name": "entity.name.type.svelte"
317
+ },
318
+ {
319
+ "match": "(?<=(bind):).*$",
320
+ "name": "variable.parameter.svelte"
321
+ },
322
+ {
323
+ "match": "(?<=(use|transition|in|out|animate):).*$",
324
+ "name": "variable.function.svelte"
325
+ },
326
+ {
327
+ "match": "(?<=(let|class|style):).*$",
328
+ "name": "variable.parameter.svelte"
329
+ }
330
+ ]
331
+ },
332
+ "attributes-directives-types-assigned": {
333
+ "patterns": [
334
+ {
335
+ "match": "(?<=(bind):)this$",
336
+ "name": "variable.language.svelte"
337
+ },
338
+ {
339
+ "match": "(?<=(bind):).*$",
340
+ "name": "entity.name.type.svelte"
341
+ },
342
+ {
343
+ "match": "(?<=(class):).*$",
344
+ "name": "entity.other.attribute-name.class.svelte"
345
+ },
346
+ {
347
+ "match": "(?<=(style):).*$",
348
+ "name": "support.type.property-name.svelte"
349
+ },
350
+ {
351
+ "include": "#attributes-directives-types"
352
+ }
353
+ ]
354
+ },
355
+ "attributes-generics": {
356
+ "begin": "(generics)(=)([\"'])",
357
+ "beginCaptures": {
358
+ "1": {
359
+ "name": "entity.other.attribute-name.svelte"
360
+ },
361
+ "2": {
362
+ "name": "punctuation.separator.key-value.svelte"
363
+ },
364
+ "3": {
365
+ "name": "punctuation.definition.string.begin.svelte"
366
+ }
367
+ },
368
+ "contentName": "meta.embedded.expression.svelte source.ts",
369
+ "end": "(\\3)",
370
+ "endCaptures": {
371
+ "1": {
372
+ "name": "punctuation.definition.string.end.svelte"
373
+ }
374
+ },
375
+ "patterns": [
376
+ {
377
+ "include": "#type-parameters"
378
+ }
379
+ ]
380
+ },
381
+ "attributes-interpolated": {
382
+ "begin": "(?<!:|=)\\s*({)",
383
+ "captures": {
384
+ "1": {
385
+ "name": "entity.other.attribute-name.svelte"
386
+ }
387
+ },
388
+ "contentName": "meta.embedded.expression.svelte source.ts",
389
+ "end": "(\\})",
390
+ "patterns": [
391
+ {
392
+ "include": "source.ts"
393
+ }
394
+ ]
395
+ },
396
+ "attributes-keyvalue": {
397
+ "begin": "((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*)",
398
+ "beginCaptures": {
399
+ "0": {
400
+ "patterns": [
401
+ {
402
+ "match": "--.*",
403
+ "name": "support.type.property-name.svelte"
404
+ },
405
+ {
406
+ "match": ".*",
407
+ "name": "entity.other.attribute-name.svelte"
408
+ }
409
+ ]
410
+ }
411
+ },
412
+ "end": "(?=\\s*+[^=\\s])",
413
+ "name": "meta.attribute.$1.svelte",
414
+ "patterns": [
415
+ {
416
+ "begin": "=",
417
+ "beginCaptures": {
418
+ "0": {
419
+ "name": "punctuation.separator.key-value.svelte"
420
+ }
421
+ },
422
+ "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)",
423
+ "patterns": [
424
+ {
425
+ "include": "#attributes-value"
426
+ }
427
+ ]
428
+ }
429
+ ]
430
+ },
431
+ "attributes-value": {
432
+ "patterns": [
433
+ {
434
+ "include": "#interpolation"
435
+ },
436
+ {
437
+ "captures": {
438
+ "1": {
439
+ "name": "punctuation.definition.string.begin.svelte"
440
+ },
441
+ "2": {
442
+ "name": "constant.numeric.decimal.svelte"
443
+ },
444
+ "3": {
445
+ "name": "punctuation.definition.string.end.svelte"
446
+ },
447
+ "4": {
448
+ "name": "constant.numeric.decimal.svelte"
449
+ }
450
+ },
451
+ "match": "(?:(['\"])([0-9._]+[\\w%]{,4})(\\1))|(?:([0-9._]+[\\w%]{,4})(?=\\s|/?>))"
452
+ },
453
+ {
454
+ "match": "([^\\s\"'=<>`/]|/(?!>))+",
455
+ "name": "string.unquoted.svelte",
456
+ "patterns": [
457
+ {
458
+ "include": "#interpolation"
459
+ }
460
+ ]
461
+ },
462
+ {
463
+ "begin": "(['\"])",
464
+ "beginCaptures": {
465
+ "0": {
466
+ "name": "punctuation.definition.string.begin.svelte"
467
+ }
468
+ },
469
+ "end": "\\1",
470
+ "endCaptures": {
471
+ "0": {
472
+ "name": "punctuation.definition.string.end.svelte"
473
+ }
474
+ },
475
+ "name": "string.quoted.svelte",
476
+ "patterns": [
477
+ {
478
+ "include": "#interpolation"
479
+ }
480
+ ]
481
+ }
482
+ ]
483
+ },
484
+ "comments": {
485
+ "begin": "<!--",
486
+ "captures": {
487
+ "0": {
488
+ "name": "punctuation.definition.comment.svelte"
489
+ }
490
+ },
491
+ "end": "-->",
492
+ "name": "comment.block.svelte",
493
+ "patterns": [
494
+ {
495
+ "begin": "(@)(component)",
496
+ "beginCaptures": {
497
+ "1": {
498
+ "name": "punctuation.definition.keyword.svelte"
499
+ },
500
+ "2": {
501
+ "name": "storage.type.class.component.svelte keyword.declaration.class.component.svelte"
502
+ }
503
+ },
504
+ "contentName": "comment.block.documentation.svelte",
505
+ "end": "(?=-->)",
506
+ "patterns": [
507
+ {
508
+ "captures": {
509
+ "0": {
510
+ "patterns": [
511
+ {
512
+ "include": "text.html.markdown"
513
+ }
514
+ ]
515
+ }
516
+ },
517
+ "match": ".*?(?=-->)"
518
+ },
519
+ {
520
+ "include": "text.html.markdown"
521
+ }
522
+ ]
523
+ },
524
+ {
525
+ "match": "\\G-?>|<!--(?!>)|<!-(?=-->)|--!>",
526
+ "name": "invalid.illegal.characters-not-allowed-here.svelte"
527
+ }
528
+ ]
529
+ },
530
+ "destructuring": {
531
+ "patterns": [
532
+ {
533
+ "begin": "(?={)",
534
+ "end": "(?<=})",
535
+ "name": "meta.embedded.expression.svelte source.ts",
536
+ "patterns": [
537
+ {
538
+ "include": "source.ts#object-binding-pattern"
539
+ }
540
+ ]
541
+ },
542
+ {
543
+ "begin": "(?=\\[)",
544
+ "end": "(?<=\\])",
545
+ "name": "meta.embedded.expression.svelte source.ts",
546
+ "patterns": [
547
+ {
548
+ "include": "source.ts#array-binding-pattern"
549
+ }
550
+ ]
551
+ }
552
+ ]
553
+ },
554
+ "destructuring-const": {
555
+ "patterns": [
556
+ {
557
+ "begin": "(?={)",
558
+ "end": "(?<=})",
559
+ "name": "meta.embedded.expression.svelte source.ts",
560
+ "patterns": [
561
+ {
562
+ "include": "source.ts#object-binding-pattern-const"
563
+ }
564
+ ]
565
+ },
566
+ {
567
+ "begin": "(?=\\[)",
568
+ "end": "(?<=\\])",
569
+ "name": "meta.embedded.expression.svelte source.ts",
570
+ "patterns": [
571
+ {
572
+ "include": "source.ts#array-binding-pattern-const"
573
+ }
574
+ ]
575
+ }
576
+ ]
577
+ },
578
+ "interpolation": {
579
+ "patterns": [
580
+ {
581
+ "begin": "\\{",
582
+ "beginCaptures": {
583
+ "0": {
584
+ "name": "punctuation.section.embedded.begin.svelte"
585
+ }
586
+ },
587
+ "contentName": "meta.embedded.expression.svelte source.ts",
588
+ "end": "\\}",
589
+ "endCaptures": {
590
+ "0": {
591
+ "name": "punctuation.section.embedded.end.svelte"
592
+ }
593
+ },
594
+ "patterns": [
595
+ {
596
+ "begin": "\\G\\s*(?={)",
597
+ "end": "(?<=})",
598
+ "patterns": [
599
+ {
600
+ "include": "source.ts#object-literal"
601
+ }
602
+ ]
603
+ },
604
+ {
605
+ "include": "source.ts"
606
+ }
607
+ ]
608
+ }
609
+ ]
610
+ },
611
+ "scope": {
612
+ "patterns": [
613
+ {
614
+ "include": "#comments"
615
+ },
616
+ {
617
+ "include": "#special-tags"
618
+ },
619
+ {
620
+ "include": "#tags"
621
+ },
622
+ {
623
+ "include": "#interpolation"
624
+ },
625
+ {
626
+ "begin": "(?<=>|})",
627
+ "end": "(?=<|{)",
628
+ "name": "text.svelte"
629
+ }
630
+ ]
631
+ },
632
+ "special-tags": {
633
+ "patterns": [
634
+ {
635
+ "include": "#special-tags-void"
636
+ },
637
+ {
638
+ "include": "#special-tags-block-begin"
639
+ },
640
+ {
641
+ "include": "#special-tags-block-end"
642
+ }
643
+ ]
644
+ },
645
+ "special-tags-block-begin": {
646
+ "begin": "({)\\s*(#([a-z]*))",
647
+ "beginCaptures": {
648
+ "1": {
649
+ "name": "punctuation.definition.block.begin.svelte"
650
+ },
651
+ "2": {
652
+ "patterns": [
653
+ {
654
+ "include": "#special-tags-keywords"
655
+ }
656
+ ]
657
+ }
658
+ },
659
+ "end": "(})",
660
+ "endCaptures": {
661
+ "0": {
662
+ "name": "punctuation.definition.block.end.svelte"
663
+ }
664
+ },
665
+ "name": "meta.special.$3.svelte meta.special.start.svelte",
666
+ "patterns": [
667
+ {
668
+ "include": "#special-tags-modes"
669
+ }
670
+ ]
671
+ },
672
+ "special-tags-block-end": {
673
+ "begin": "({)\\s*(/([a-z]*))",
674
+ "beginCaptures": {
675
+ "1": {
676
+ "name": "punctuation.definition.block.begin.svelte"
677
+ },
678
+ "2": {
679
+ "patterns": [
680
+ {
681
+ "include": "#special-tags-keywords"
682
+ }
683
+ ]
684
+ }
685
+ },
686
+ "end": "(})",
687
+ "endCaptures": {
688
+ "1": {
689
+ "name": "punctuation.definition.block.end.svelte"
690
+ }
691
+ },
692
+ "name": "meta.special.$3.svelte meta.special.end.svelte"
693
+ },
694
+ "special-tags-keywords": {
695
+ "captures": {
696
+ "1": {
697
+ "name": "punctuation.definition.keyword.svelte"
698
+ },
699
+ "2": {
700
+ "patterns": [
701
+ {
702
+ "match": "if|else\\s+if|else",
703
+ "name": "keyword.control.conditional.svelte"
704
+ },
705
+ {
706
+ "match": "each|key",
707
+ "name": "keyword.control.svelte"
708
+ },
709
+ {
710
+ "match": "await|then|catch",
711
+ "name": "keyword.control.flow.svelte"
712
+ },
713
+ {
714
+ "match": "snippet",
715
+ "name": "keyword.control.svelte"
716
+ },
717
+ {
718
+ "match": "html",
719
+ "name": "keyword.other.svelte"
720
+ },
721
+ {
722
+ "match": "render",
723
+ "name": "keyword.other.svelte"
724
+ },
725
+ {
726
+ "match": "debug",
727
+ "name": "keyword.other.debugger.svelte"
728
+ },
729
+ {
730
+ "match": "const",
731
+ "name": "storage.type.svelte"
732
+ }
733
+ ]
734
+ }
735
+ },
736
+ "match": "([#@/:])(else\\s+if|[a-z]*)"
737
+ },
738
+ "special-tags-modes": {
739
+ "patterns": [
740
+ {
741
+ "begin": "(?<=(if|key|then|catch|snippet|html|render).*?)\\G",
742
+ "end": "(?=})",
743
+ "name": "meta.embedded.expression.svelte source.ts",
744
+ "patterns": [
745
+ {
746
+ "include": "source.ts"
747
+ }
748
+ ]
749
+ },
750
+ {
751
+ "begin": "(?<=const.*?)\\G",
752
+ "end": "(?=})",
753
+ "patterns": [
754
+ {
755
+ "include": "#destructuring-const"
756
+ },
757
+ {
758
+ "begin": "\\G\\s*([_$[:alpha:]][_$[:alnum:]]+)\\s*",
759
+ "beginCaptures": {
760
+ "1": {
761
+ "name": "variable.other.constant.svelte"
762
+ }
763
+ },
764
+ "end": "(?=\\=)"
765
+ },
766
+ {
767
+ "begin": "(?=\\=)",
768
+ "end": "(?=})",
769
+ "name": "meta.embedded.expression.svelte source.ts",
770
+ "patterns": [
771
+ {
772
+ "include": "source.ts"
773
+ }
774
+ ]
775
+ }
776
+ ]
777
+ },
778
+ {
779
+ "begin": "(?<=each.*?)\\G",
780
+ "end": "(?=})",
781
+ "patterns": [
782
+ {
783
+ "begin": "\\G\\s*?(?=\\S)",
784
+ "contentName": "meta.embedded.expression.svelte source.ts",
785
+ "end": "(?=(?:^\\s*|\\s+)(as))",
786
+ "patterns": [
787
+ {
788
+ "include": "source.ts"
789
+ }
790
+ ]
791
+ },
792
+ {
793
+ "begin": "(as)",
794
+ "beginCaptures": {
795
+ "1": {
796
+ "name": "keyword.control.as.svelte"
797
+ }
798
+ },
799
+ "end": "(?=})",
800
+ "patterns": [
801
+ {
802
+ "include": "#destructuring"
803
+ },
804
+ {
805
+ "begin": "\\(",
806
+ "captures": {
807
+ "0": {
808
+ "name": "meta.brace.round.svelte"
809
+ }
810
+ },
811
+ "contentName": "meta.embedded.expression.svelte source.ts",
812
+ "end": "\\)|(?=})",
813
+ "patterns": [
814
+ {
815
+ "include": "source.ts"
816
+ }
817
+ ]
818
+ },
819
+ {
820
+ "captures": {
821
+ "1": {
822
+ "name": "meta.embedded.expression.svelte source.ts",
823
+ "patterns": [
824
+ {
825
+ "include": "source.ts"
826
+ }
827
+ ]
828
+ }
829
+ },
830
+ "match": "(\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*)"
831
+ },
832
+ {
833
+ "match": ",",
834
+ "name": "punctuation.separator.svelte"
835
+ }
836
+ ]
837
+ }
838
+ ]
839
+ },
840
+ {
841
+ "begin": "(?<=await.*?)\\G",
842
+ "end": "(?=})",
843
+ "patterns": [
844
+ {
845
+ "begin": "\\G\\s*?(?=\\S)",
846
+ "contentName": "meta.embedded.expression.svelte source.ts",
847
+ "end": "\\s+(then)|(?=})",
848
+ "endCaptures": {
849
+ "1": {
850
+ "name": "keyword.control.flow.svelte"
851
+ }
852
+ },
853
+ "patterns": [
854
+ {
855
+ "include": "source.ts"
856
+ }
857
+ ]
858
+ },
859
+ {
860
+ "begin": "(?<=then\\b)",
861
+ "contentName": "meta.embedded.expression.svelte source.ts",
862
+ "end": "(?=})",
863
+ "patterns": [
864
+ {
865
+ "include": "source.ts"
866
+ }
867
+ ]
868
+ }
869
+ ]
870
+ },
871
+ {
872
+ "begin": "(?<=debug.*?)\\G",
873
+ "end": "(?=})",
874
+ "patterns": [
875
+ {
876
+ "captures": {
877
+ "0": {
878
+ "name": "meta.embedded.expression.svelte source.ts",
879
+ "patterns": [
880
+ {
881
+ "include": "source.ts"
882
+ }
883
+ ]
884
+ }
885
+ },
886
+ "match": "[_$[:alpha:]][_$[:alnum:]]*"
887
+ },
888
+ {
889
+ "match": ",",
890
+ "name": "punctuation.separator.svelte"
891
+ }
892
+ ]
893
+ }
894
+ ]
895
+ },
896
+ "special-tags-void": {
897
+ "begin": "({)\\s*((?:[@:])(else\\s+if|[a-z]*))",
898
+ "beginCaptures": {
899
+ "1": {
900
+ "name": "punctuation.definition.block.begin.svelte"
901
+ },
902
+ "2": {
903
+ "patterns": [
904
+ {
905
+ "include": "#special-tags-keywords"
906
+ }
907
+ ]
908
+ }
909
+ },
910
+ "end": "\\}",
911
+ "endCaptures": {
912
+ "0": {
913
+ "name": "punctuation.definition.block.end.svelte"
914
+ }
915
+ },
916
+ "name": "meta.special.$3.svelte",
917
+ "patterns": [
918
+ {
919
+ "include": "#special-tags-modes"
920
+ }
921
+ ]
922
+ },
923
+ "tags": {
924
+ "patterns": [
925
+ {
926
+ "include": "#tags-lang"
927
+ },
928
+ {
929
+ "include": "#tags-void"
930
+ },
931
+ {
932
+ "include": "#tags-general-end"
933
+ },
934
+ {
935
+ "include": "#tags-general-start"
936
+ }
937
+ ]
938
+ },
939
+ "tags-end-node": {
940
+ "captures": {
941
+ "1": {
942
+ "name": "meta.tag.end.svelte punctuation.definition.tag.begin.svelte"
943
+ },
944
+ "2": {
945
+ "name": "meta.tag.end.svelte",
946
+ "patterns": [
947
+ {
948
+ "include": "#tags-name"
949
+ }
950
+ ]
951
+ },
952
+ "3": {
953
+ "name": "meta.tag.end.svelte punctuation.definition.tag.end.svelte"
954
+ },
955
+ "4": {
956
+ "name": "meta.tag.start.svelte punctuation.definition.tag.end.svelte"
957
+ }
958
+ },
959
+ "match": "(</)(.*?)\\s*(>)|(/>)"
960
+ },
961
+ "tags-general-end": {
962
+ "begin": "(</)([^/\\s>]*)",
963
+ "beginCaptures": {
964
+ "1": {
965
+ "name": "meta.tag.end.svelte punctuation.definition.tag.begin.svelte"
966
+ },
967
+ "2": {
968
+ "name": "meta.tag.end.svelte",
969
+ "patterns": [
970
+ {
971
+ "include": "#tags-name"
972
+ }
973
+ ]
974
+ }
975
+ },
976
+ "end": "(>)",
977
+ "endCaptures": {
978
+ "1": {
979
+ "name": "meta.tag.end.svelte punctuation.definition.tag.end.svelte"
980
+ }
981
+ },
982
+ "name": "meta.scope.tag.$2.svelte"
983
+ },
984
+ "tags-general-start": {
985
+ "begin": "(<)([^/\\s>/]*)",
986
+ "beginCaptures": {
987
+ "0": {
988
+ "patterns": [
989
+ {
990
+ "include": "#tags-start-node"
991
+ }
992
+ ]
993
+ }
994
+ },
995
+ "end": "(/?>)",
996
+ "endCaptures": {
997
+ "1": {
998
+ "name": "meta.tag.start.svelte punctuation.definition.tag.end.svelte"
999
+ }
1000
+ },
1001
+ "name": "meta.scope.tag.$2.svelte",
1002
+ "patterns": [
1003
+ {
1004
+ "include": "#tags-start-attributes"
1005
+ }
1006
+ ]
1007
+ },
1008
+ "tags-lang": {
1009
+ "begin": "<(script|style|template)",
1010
+ "beginCaptures": {
1011
+ "0": {
1012
+ "patterns": [
1013
+ {
1014
+ "include": "#tags-start-node"
1015
+ }
1016
+ ]
1017
+ }
1018
+ },
1019
+ "end": "</\\1\\s*>|/>",
1020
+ "endCaptures": {
1021
+ "0": {
1022
+ "patterns": [
1023
+ {
1024
+ "include": "#tags-end-node"
1025
+ }
1026
+ ]
1027
+ }
1028
+ },
1029
+ "name": "meta.$1.svelte",
1030
+ "patterns": [
1031
+ {
1032
+ "begin": "\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/)?(\\w+)\\2)",
1033
+ "end": "(?=</|/>)",
1034
+ "name": "meta.lang.$3.svelte",
1035
+ "patterns": [
1036
+ {
1037
+ "include": "#tags-lang-start-attributes"
1038
+ }
1039
+ ]
1040
+ },
1041
+ {
1042
+ "include": "#tags-lang-start-attributes"
1043
+ }
1044
+ ]
1045
+ },
1046
+ "tags-lang-start-attributes": {
1047
+ "begin": "\\G",
1048
+ "end": "(?=/>)|>",
1049
+ "endCaptures": {
1050
+ "0": {
1051
+ "name": "punctuation.definition.tag.end.svelte"
1052
+ }
1053
+ },
1054
+ "name": "meta.tag.start.svelte",
1055
+ "patterns": [
1056
+ {
1057
+ "include": "#attributes-generics"
1058
+ },
1059
+ {
1060
+ "include": "#attributes"
1061
+ }
1062
+ ]
1063
+ },
1064
+ "tags-name": {
1065
+ "patterns": [
1066
+ {
1067
+ "captures": {
1068
+ "1": {
1069
+ "name": "keyword.control.svelte"
1070
+ },
1071
+ "2": {
1072
+ "name": "punctuation.definition.keyword.svelte"
1073
+ },
1074
+ "3": {
1075
+ "name": "entity.name.tag.svelte"
1076
+ }
1077
+ },
1078
+ "match": "(svelte)(:)([a-z][\\w0-9:-]*)"
1079
+ },
1080
+ {
1081
+ "match": "slot",
1082
+ "name": "keyword.control.svelte"
1083
+ },
1084
+ {
1085
+ "match": "[A-Z][a-zA-Z0-9_]*",
1086
+ "name": "support.class.component.svelte"
1087
+ },
1088
+ {
1089
+ "match": "[a-z][\\w0-9:]*-[\\w0-9:-]*",
1090
+ "name": "meta.tag.custom.svelte entity.name.tag.svelte"
1091
+ },
1092
+ {
1093
+ "match": "[a-z][\\w0-9:-]*",
1094
+ "name": "entity.name.tag.svelte"
1095
+ }
1096
+ ]
1097
+ },
1098
+ "tags-start-attributes": {
1099
+ "begin": "\\G",
1100
+ "end": "(?=/?>)",
1101
+ "name": "meta.tag.start.svelte",
1102
+ "patterns": [
1103
+ {
1104
+ "include": "#attributes"
1105
+ }
1106
+ ]
1107
+ },
1108
+ "tags-start-node": {
1109
+ "captures": {
1110
+ "1": {
1111
+ "name": "punctuation.definition.tag.begin.svelte"
1112
+ },
1113
+ "2": {
1114
+ "patterns": [
1115
+ {
1116
+ "include": "#tags-name"
1117
+ }
1118
+ ]
1119
+ }
1120
+ },
1121
+ "match": "(<)([^/\\s>/]*)",
1122
+ "name": "meta.tag.start.svelte"
1123
+ },
1124
+ "tags-void": {
1125
+ "begin": "(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)",
1126
+ "beginCaptures": {
1127
+ "1": {
1128
+ "name": "punctuation.definition.tag.begin.svelte"
1129
+ },
1130
+ "2": {
1131
+ "name": "entity.name.tag.svelte"
1132
+ }
1133
+ },
1134
+ "end": "/?>",
1135
+ "endCaptures": {
1136
+ "0": {
1137
+ "name": "punctuation.definition.tag.begin.svelte"
1138
+ }
1139
+ },
1140
+ "name": "meta.tag.void.svelte",
1141
+ "patterns": [
1142
+ {
1143
+ "include": "#attributes"
1144
+ }
1145
+ ]
1146
+ },
1147
+ "type-parameters": {
1148
+ "name": "meta.type.parameters.ts",
1149
+ "patterns": [
1150
+ {
1151
+ "include": "source.ts#comment"
1152
+ },
1153
+ {
1154
+ "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
1155
+ "name": "storage.modifier.ts"
1156
+ },
1157
+ {
1158
+ "include": "source.ts#type"
1159
+ },
1160
+ {
1161
+ "include": "source.ts#punctuation-comma"
1162
+ },
1163
+ {
1164
+ "match": "(=)(?!>)",
1165
+ "name": "keyword.operator.assignment.ts"
1166
+ }
1167
+ ]
1168
+ }
1169
+ },
1170
+ "scopeName": "source.svelte"
1171
+ }