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