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,848 @@
1
+ {
2
+ "displayName": "Handlebars",
3
+ "name": "handlebars",
4
+ "patterns": [
5
+ {
6
+ "include": "#yfm"
7
+ },
8
+ {
9
+ "include": "#extends"
10
+ },
11
+ {
12
+ "include": "#block_comments"
13
+ },
14
+ {
15
+ "include": "#comments"
16
+ },
17
+ {
18
+ "include": "#block_helper"
19
+ },
20
+ {
21
+ "include": "#end_block"
22
+ },
23
+ {
24
+ "include": "#else_token"
25
+ },
26
+ {
27
+ "include": "#partial_and_var"
28
+ },
29
+ {
30
+ "include": "#inline_script"
31
+ },
32
+ {
33
+ "include": "#html_tags"
34
+ },
35
+ {
36
+ "include": "text.html.basic"
37
+ }
38
+ ],
39
+ "repository": {
40
+ "block_comments": {
41
+ "patterns": [
42
+ {
43
+ "begin": "\\{\\{!--",
44
+ "end": "--\\}\\}",
45
+ "name": "comment.block.handlebars",
46
+ "patterns": [
47
+ {
48
+ "match": "@\\w*",
49
+ "name": "keyword.annotation.handlebars"
50
+ },
51
+ {
52
+ "include": "#comments"
53
+ }
54
+ ]
55
+ },
56
+ {
57
+ "begin": "<!--",
58
+ "captures": {
59
+ "0": {
60
+ "name": "punctuation.definition.comment.html"
61
+ }
62
+ },
63
+ "end": "-{2,3}\\s*>",
64
+ "name": "comment.block.html",
65
+ "patterns": [
66
+ {
67
+ "match": "--",
68
+ "name": "invalid.illegal.bad-comments-or-CDATA.html"
69
+ }
70
+ ]
71
+ }
72
+ ]
73
+ },
74
+ "block_helper": {
75
+ "begin": "(\\{\\{)(~?\\#)([-a-zA-Z0-9_\\./>]+)\\s?(@?[-a-zA-Z0-9_\\./]+)*\\s?(@?[-a-zA-Z0-9_\\./]+)*\\s?(@?[-a-zA-Z0-9_\\./]+)*",
76
+ "beginCaptures": {
77
+ "1": {
78
+ "name": "support.constant.handlebars"
79
+ },
80
+ "2": {
81
+ "name": "support.constant.handlebars keyword.control"
82
+ },
83
+ "3": {
84
+ "name": "support.constant.handlebars keyword.control"
85
+ },
86
+ "4": {
87
+ "name": "variable.parameter.handlebars"
88
+ },
89
+ "5": {
90
+ "name": "support.constant.handlebars"
91
+ },
92
+ "6": {
93
+ "name": "variable.parameter.handlebars"
94
+ },
95
+ "7": {
96
+ "name": "support.constant.handlebars"
97
+ }
98
+ },
99
+ "end": "(~?\\}\\})",
100
+ "endCaptures": {
101
+ "1": {
102
+ "name": "support.constant.handlebars"
103
+ }
104
+ },
105
+ "name": "meta.function.block.start.handlebars",
106
+ "patterns": [
107
+ {
108
+ "include": "#string"
109
+ },
110
+ {
111
+ "include": "#handlebars_attribute"
112
+ }
113
+ ]
114
+ },
115
+ "comments": {
116
+ "patterns": [
117
+ {
118
+ "begin": "\\{\\{!",
119
+ "end": "\\}\\}",
120
+ "name": "comment.block.handlebars",
121
+ "patterns": [
122
+ {
123
+ "match": "@\\w*",
124
+ "name": "keyword.annotation.handlebars"
125
+ },
126
+ {
127
+ "include": "#comments"
128
+ }
129
+ ]
130
+ },
131
+ {
132
+ "begin": "<!--",
133
+ "captures": {
134
+ "0": {
135
+ "name": "punctuation.definition.comment.html"
136
+ }
137
+ },
138
+ "end": "-{2,3}\\s*>",
139
+ "name": "comment.block.html",
140
+ "patterns": [
141
+ {
142
+ "match": "--",
143
+ "name": "invalid.illegal.bad-comments-or-CDATA.html"
144
+ }
145
+ ]
146
+ }
147
+ ]
148
+ },
149
+ "else_token": {
150
+ "begin": "(\\{\\{)(~?else)(@?\\s(if)\\s([-a-zA-Z0-9_\\.\\(\\s\\)/]+))?",
151
+ "beginCaptures": {
152
+ "1": {
153
+ "name": "support.constant.handlebars"
154
+ },
155
+ "2": {
156
+ "name": "support.constant.handlebars keyword.control"
157
+ },
158
+ "3": {
159
+ "name": "support.constant.handlebars"
160
+ },
161
+ "4": {
162
+ "name": "variable.parameter.handlebars"
163
+ }
164
+ },
165
+ "end": "(~?\\}\\}\\}*)",
166
+ "endCaptures": {
167
+ "1": {
168
+ "name": "support.constant.handlebars"
169
+ }
170
+ },
171
+ "name": "meta.function.inline.else.handlebars"
172
+ },
173
+ "end_block": {
174
+ "begin": "(\\{\\{)(~?/)([a-zA-Z0-9/_\\.-]+)\\s*",
175
+ "beginCaptures": {
176
+ "1": {
177
+ "name": "support.constant.handlebars"
178
+ },
179
+ "2": {
180
+ "name": "support.constant.handlebars keyword.control"
181
+ },
182
+ "3": {
183
+ "name": "support.constant.handlebars keyword.control"
184
+ }
185
+ },
186
+ "end": "(~?\\}\\})",
187
+ "endCaptures": {
188
+ "1": {
189
+ "name": "support.constant.handlebars"
190
+ }
191
+ },
192
+ "name": "meta.function.block.end.handlebars",
193
+ "patterns": [
194
+ ]
195
+ },
196
+ "entities": {
197
+ "patterns": [
198
+ {
199
+ "captures": {
200
+ "1": {
201
+ "name": "punctuation.definition.entity.html"
202
+ },
203
+ "3": {
204
+ "name": "punctuation.definition.entity.html"
205
+ }
206
+ },
207
+ "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",
208
+ "name": "constant.character.entity.html"
209
+ },
210
+ {
211
+ "match": "&",
212
+ "name": "invalid.illegal.bad-ampersand.html"
213
+ }
214
+ ]
215
+ },
216
+ "escaped-double-quote": {
217
+ "match": "\\\\\"",
218
+ "name": "constant.character.escape.js"
219
+ },
220
+ "escaped-single-quote": {
221
+ "match": "\\\\'",
222
+ "name": "constant.character.escape.js"
223
+ },
224
+ "extends": {
225
+ "patterns": [
226
+ {
227
+ "begin": "(\\{\\{!<)\\s([-a-zA-Z0-9_\\./]+)",
228
+ "beginCaptures": {
229
+ "1": {
230
+ "name": "support.function.handlebars"
231
+ },
232
+ "2": {
233
+ "name": "support.class.handlebars"
234
+ }
235
+ },
236
+ "end": "(\\}\\})",
237
+ "endCaptures": {
238
+ "1": {
239
+ "name": "support.function.handlebars"
240
+ }
241
+ },
242
+ "name": "meta.preprocessor.handlebars"
243
+ }
244
+ ]
245
+ },
246
+ "handlebars_attribute": {
247
+ "patterns": [
248
+ {
249
+ "include": "#handlebars_attribute_name"
250
+ },
251
+ {
252
+ "include": "#handlebars_attribute_value"
253
+ }
254
+ ]
255
+ },
256
+ "handlebars_attribute_name": {
257
+ "begin": "\\b([-a-zA-Z0-9_\\.]+)\\b=",
258
+ "captures": {
259
+ "1": {
260
+ "name": "variable.parameter.handlebars"
261
+ }
262
+ },
263
+ "end": "(?='|\"|)",
264
+ "name": "entity.other.attribute-name.handlebars"
265
+ },
266
+ "handlebars_attribute_value": {
267
+ "begin": "([-a-zA-Z0-9_\\./]+)\\b",
268
+ "captures": {
269
+ "1": {
270
+ "name": "variable.parameter.handlebars"
271
+ }
272
+ },
273
+ "end": "('|\"|)",
274
+ "name": "entity.other.attribute-value.handlebars",
275
+ "patterns": [
276
+ {
277
+ "include": "#string"
278
+ }
279
+ ]
280
+ },
281
+ "html_tags": {
282
+ "patterns": [
283
+ {
284
+ "begin": "(<)([a-zA-Z0-9:-]+)(?=[^>]*></\\2>)",
285
+ "beginCaptures": {
286
+ "1": {
287
+ "name": "punctuation.definition.tag.html"
288
+ },
289
+ "2": {
290
+ "name": "entity.name.tag.html"
291
+ }
292
+ },
293
+ "end": "(>(<)/)(\\2)(>)",
294
+ "endCaptures": {
295
+ "1": {
296
+ "name": "punctuation.definition.tag.html"
297
+ },
298
+ "2": {
299
+ "name": "meta.scope.between-tag-pair.html"
300
+ },
301
+ "3": {
302
+ "name": "entity.name.tag.html"
303
+ },
304
+ "4": {
305
+ "name": "punctuation.definition.tag.html"
306
+ }
307
+ },
308
+ "name": "meta.tag.any.html",
309
+ "patterns": [
310
+ {
311
+ "include": "#tag-stuff"
312
+ }
313
+ ]
314
+ },
315
+ {
316
+ "begin": "(<\\?)(xml)",
317
+ "captures": {
318
+ "1": {
319
+ "name": "punctuation.definition.tag.html"
320
+ },
321
+ "2": {
322
+ "name": "entity.name.tag.xml.html"
323
+ }
324
+ },
325
+ "end": "(\\?>)",
326
+ "name": "meta.tag.preprocessor.xml.html",
327
+ "patterns": [
328
+ {
329
+ "include": "#tag_generic_attribute"
330
+ },
331
+ {
332
+ "include": "#string"
333
+ }
334
+ ]
335
+ },
336
+ {
337
+ "begin": "<!--",
338
+ "captures": {
339
+ "0": {
340
+ "name": "punctuation.definition.comment.html"
341
+ }
342
+ },
343
+ "end": "--\\s*>",
344
+ "name": "comment.block.html",
345
+ "patterns": [
346
+ {
347
+ "match": "--",
348
+ "name": "invalid.illegal.bad-comments-or-CDATA.html"
349
+ }
350
+ ]
351
+ },
352
+ {
353
+ "begin": "<!",
354
+ "captures": {
355
+ "0": {
356
+ "name": "punctuation.definition.tag.html"
357
+ }
358
+ },
359
+ "end": ">",
360
+ "name": "meta.tag.sgml.html",
361
+ "patterns": [
362
+ {
363
+ "begin": "(DOCTYPE|doctype)",
364
+ "captures": {
365
+ "1": {
366
+ "name": "entity.name.tag.doctype.html"
367
+ }
368
+ },
369
+ "end": "(?=>)",
370
+ "name": "meta.tag.sgml.doctype.html",
371
+ "patterns": [
372
+ {
373
+ "match": "\"[^\">]*\"",
374
+ "name": "string.quoted.double.doctype.identifiers-and-DTDs.html"
375
+ }
376
+ ]
377
+ },
378
+ {
379
+ "begin": "\\[CDATA\\[",
380
+ "end": "]](?=>)",
381
+ "name": "constant.other.inline-data.html"
382
+ },
383
+ {
384
+ "match": "(\\s*)(?!--|>)\\S(\\s*)",
385
+ "name": "invalid.illegal.bad-comments-or-CDATA.html"
386
+ }
387
+ ]
388
+ },
389
+ {
390
+ "begin": "(?:^\\s+)?(<)((?i:style))\\b(?![^>]*/>)",
391
+ "captures": {
392
+ "1": {
393
+ "name": "punctuation.definition.tag.html"
394
+ },
395
+ "2": {
396
+ "name": "entity.name.tag.style.html"
397
+ },
398
+ "3": {
399
+ "name": "punctuation.definition.tag.html"
400
+ }
401
+ },
402
+ "end": "(</)((?i:style))(>)(?:\\s*\\n)?",
403
+ "name": "source.css.embedded.html",
404
+ "patterns": [
405
+ {
406
+ "include": "#tag-stuff"
407
+ },
408
+ {
409
+ "begin": "(>)",
410
+ "beginCaptures": {
411
+ "1": {
412
+ "name": "punctuation.definition.tag.html"
413
+ }
414
+ },
415
+ "end": "(?=</(?i:style))",
416
+ "patterns": [
417
+ {
418
+ "include": "source.css"
419
+ }
420
+ ]
421
+ }
422
+ ]
423
+ },
424
+ {
425
+ "begin": "(?:^\\s+)?(<)((?i:script))\\b(?![^>]*/>)",
426
+ "beginCaptures": {
427
+ "1": {
428
+ "name": "punctuation.definition.tag.html"
429
+ },
430
+ "2": {
431
+ "name": "entity.name.tag.script.html"
432
+ }
433
+ },
434
+ "end": "(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?",
435
+ "endCaptures": {
436
+ "2": {
437
+ "name": "punctuation.definition.tag.html"
438
+ }
439
+ },
440
+ "name": "source.js.embedded.html",
441
+ "patterns": [
442
+ {
443
+ "include": "#tag-stuff"
444
+ },
445
+ {
446
+ "begin": "(?<!</(?:script|SCRIPT))(>)",
447
+ "captures": {
448
+ "1": {
449
+ "name": "punctuation.definition.tag.html"
450
+ },
451
+ "2": {
452
+ "name": "entity.name.tag.script.html"
453
+ }
454
+ },
455
+ "end": "(</)((?i:script))",
456
+ "patterns": [
457
+ {
458
+ "captures": {
459
+ "1": {
460
+ "name": "punctuation.definition.comment.js"
461
+ }
462
+ },
463
+ "match": "(//).*?((?=</script)|$\\n?)",
464
+ "name": "comment.line.double-slash.js"
465
+ },
466
+ {
467
+ "begin": "/\\*",
468
+ "captures": {
469
+ "0": {
470
+ "name": "punctuation.definition.comment.js"
471
+ }
472
+ },
473
+ "end": "\\*/|(?=</script)",
474
+ "name": "comment.block.js"
475
+ },
476
+ {
477
+ "include": "source.js"
478
+ }
479
+ ]
480
+ }
481
+ ]
482
+ },
483
+ {
484
+ "begin": "(</?)((?i:body|head|html)\\b)",
485
+ "captures": {
486
+ "1": {
487
+ "name": "punctuation.definition.tag.html"
488
+ },
489
+ "2": {
490
+ "name": "entity.name.tag.structure.any.html"
491
+ }
492
+ },
493
+ "end": "(>)",
494
+ "name": "meta.tag.structure.any.html",
495
+ "patterns": [
496
+ {
497
+ "include": "#tag-stuff"
498
+ }
499
+ ]
500
+ },
501
+ {
502
+ "begin": "(</?)((?i:address|blockquote|dd|div|header|section|footer|aside|nav|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\b)",
503
+ "captures": {
504
+ "1": {
505
+ "name": "punctuation.definition.tag.html"
506
+ },
507
+ "2": {
508
+ "name": "entity.name.tag.block.any.html"
509
+ }
510
+ },
511
+ "end": "(>)",
512
+ "name": "meta.tag.block.any.html",
513
+ "patterns": [
514
+ {
515
+ "include": "#tag-stuff"
516
+ }
517
+ ]
518
+ },
519
+ {
520
+ "begin": "(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)",
521
+ "captures": {
522
+ "1": {
523
+ "name": "punctuation.definition.tag.html"
524
+ },
525
+ "2": {
526
+ "name": "entity.name.tag.inline.any.html"
527
+ }
528
+ },
529
+ "end": "((?: ?/)?>)",
530
+ "name": "meta.tag.inline.any.html",
531
+ "patterns": [
532
+ {
533
+ "include": "#tag-stuff"
534
+ }
535
+ ]
536
+ },
537
+ {
538
+ "begin": "(</?)([a-zA-Z0-9:-]+)",
539
+ "captures": {
540
+ "1": {
541
+ "name": "punctuation.definition.tag.html"
542
+ },
543
+ "2": {
544
+ "name": "entity.name.tag.other.html"
545
+ }
546
+ },
547
+ "end": "(>)",
548
+ "name": "meta.tag.other.html",
549
+ "patterns": [
550
+ {
551
+ "include": "#tag-stuff"
552
+ }
553
+ ]
554
+ },
555
+ {
556
+ "begin": "(</?)([a-zA-Z0-9{}:-]+)",
557
+ "captures": {
558
+ "1": {
559
+ "name": "punctuation.definition.tag.html"
560
+ },
561
+ "2": {
562
+ "name": "entity.name.tag.tokenised.html"
563
+ }
564
+ },
565
+ "end": "(>)",
566
+ "name": "meta.tag.tokenised.html",
567
+ "patterns": [
568
+ {
569
+ "include": "#tag-stuff"
570
+ }
571
+ ]
572
+ },
573
+ {
574
+ "include": "#entities"
575
+ },
576
+ {
577
+ "match": "<>",
578
+ "name": "invalid.illegal.incomplete.html"
579
+ },
580
+ {
581
+ "match": "<",
582
+ "name": "invalid.illegal.bad-angle-bracket.html"
583
+ }
584
+ ]
585
+ },
586
+ "inline_script": {
587
+ "begin": "(?:^\\s+)?(<)((?i:script))\\b(?:.*(type)=([\"'](?:text/x-handlebars-template|text/x-handlebars|text/template|x-tmpl-handlebars)[\"']))(?![^>]*/>)",
588
+ "beginCaptures": {
589
+ "1": {
590
+ "name": "punctuation.definition.tag.html"
591
+ },
592
+ "2": {
593
+ "name": "entity.name.tag.script.html"
594
+ },
595
+ "3": {
596
+ "name": "entity.other.attribute-name.html"
597
+ },
598
+ "4": {
599
+ "name": "string.quoted.double.html"
600
+ }
601
+ },
602
+ "end": "(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?",
603
+ "endCaptures": {
604
+ "2": {
605
+ "name": "punctuation.definition.tag.html"
606
+ }
607
+ },
608
+ "name": "source.handlebars.embedded.html",
609
+ "patterns": [
610
+ {
611
+ "include": "#tag-stuff"
612
+ },
613
+ {
614
+ "begin": "(?<!</(?:script|SCRIPT))(>)",
615
+ "captures": {
616
+ "1": {
617
+ "name": "punctuation.definition.tag.html"
618
+ },
619
+ "2": {
620
+ "name": "entity.name.tag.script.html"
621
+ }
622
+ },
623
+ "end": "(</)((?i:script))",
624
+ "patterns": [
625
+ {
626
+ "include": "#block_comments"
627
+ },
628
+ {
629
+ "include": "#comments"
630
+ },
631
+ {
632
+ "include": "#block_helper"
633
+ },
634
+ {
635
+ "include": "#end_block"
636
+ },
637
+ {
638
+ "include": "#else_token"
639
+ },
640
+ {
641
+ "include": "#partial_and_var"
642
+ },
643
+ {
644
+ "include": "#html_tags"
645
+ },
646
+ {
647
+ "include": "text.html.basic"
648
+ }
649
+ ]
650
+ }
651
+ ]
652
+ },
653
+ "partial_and_var": {
654
+ "begin": "(\\{\\{~?\\{*(>|!<)*)\\s*(@?[-a-zA-Z0-9$_\\./]+)*",
655
+ "beginCaptures": {
656
+ "1": {
657
+ "name": "support.constant.handlebars"
658
+ },
659
+ "3": {
660
+ "name": "variable.parameter.handlebars"
661
+ }
662
+ },
663
+ "end": "(~?\\}\\}\\}*)",
664
+ "endCaptures": {
665
+ "1": {
666
+ "name": "support.constant.handlebars"
667
+ }
668
+ },
669
+ "name": "meta.function.inline.other.handlebars",
670
+ "patterns": [
671
+ {
672
+ "include": "#string"
673
+ },
674
+ {
675
+ "include": "#handlebars_attribute"
676
+ }
677
+ ]
678
+ },
679
+ "string": {
680
+ "patterns": [
681
+ {
682
+ "include": "#string-single-quoted"
683
+ },
684
+ {
685
+ "include": "#string-double-quoted"
686
+ }
687
+ ]
688
+ },
689
+ "string-double-quoted": {
690
+ "begin": "\"",
691
+ "beginCaptures": {
692
+ "0": {
693
+ "name": "punctuation.definition.string.begin.html"
694
+ }
695
+ },
696
+ "end": "\"",
697
+ "endCaptures": {
698
+ "0": {
699
+ "name": "punctuation.definition.string.end.html"
700
+ }
701
+ },
702
+ "name": "string.quoted.double.handlebars",
703
+ "patterns": [
704
+ {
705
+ "include": "#escaped-double-quote"
706
+ },
707
+ {
708
+ "include": "#block_comments"
709
+ },
710
+ {
711
+ "include": "#comments"
712
+ },
713
+ {
714
+ "include": "#block_helper"
715
+ },
716
+ {
717
+ "include": "#else_token"
718
+ },
719
+ {
720
+ "include": "#end_block"
721
+ },
722
+ {
723
+ "include": "#partial_and_var"
724
+ }
725
+ ]
726
+ },
727
+ "string-single-quoted": {
728
+ "begin": "'",
729
+ "beginCaptures": {
730
+ "0": {
731
+ "name": "punctuation.definition.string.begin.html"
732
+ }
733
+ },
734
+ "end": "'",
735
+ "endCaptures": {
736
+ "0": {
737
+ "name": "punctuation.definition.string.end.html"
738
+ }
739
+ },
740
+ "name": "string.quoted.single.handlebars",
741
+ "patterns": [
742
+ {
743
+ "include": "#escaped-single-quote"
744
+ },
745
+ {
746
+ "include": "#block_comments"
747
+ },
748
+ {
749
+ "include": "#comments"
750
+ },
751
+ {
752
+ "include": "#block_helper"
753
+ },
754
+ {
755
+ "include": "#else_token"
756
+ },
757
+ {
758
+ "include": "#end_block"
759
+ },
760
+ {
761
+ "include": "#partial_and_var"
762
+ }
763
+ ]
764
+ },
765
+ "tag-stuff": {
766
+ "patterns": [
767
+ {
768
+ "include": "#tag_id_attribute"
769
+ },
770
+ {
771
+ "include": "#tag_generic_attribute"
772
+ },
773
+ {
774
+ "include": "#string"
775
+ },
776
+ {
777
+ "include": "#block_comments"
778
+ },
779
+ {
780
+ "include": "#comments"
781
+ },
782
+ {
783
+ "include": "#block_helper"
784
+ },
785
+ {
786
+ "include": "#end_block"
787
+ },
788
+ {
789
+ "include": "#else_token"
790
+ },
791
+ {
792
+ "include": "#partial_and_var"
793
+ }
794
+ ]
795
+ },
796
+ "tag_generic_attribute": {
797
+ "begin": "\\b([a-zA-Z0-9_-]+)\\b\\s*(=)",
798
+ "captures": {
799
+ "1": {
800
+ "name": "entity.other.attribute-name.generic.html"
801
+ },
802
+ "2": {
803
+ "name": "punctuation.separator.key-value.html"
804
+ }
805
+ },
806
+ "end": "(?<='|\"|)",
807
+ "name": "entity.other.attribute-name.html",
808
+ "patterns": [
809
+ {
810
+ "include": "#string"
811
+ }
812
+ ]
813
+ },
814
+ "tag_id_attribute": {
815
+ "begin": "\\b(id)\\b\\s*(=)",
816
+ "captures": {
817
+ "1": {
818
+ "name": "entity.other.attribute-name.id.html"
819
+ },
820
+ "2": {
821
+ "name": "punctuation.separator.key-value.html"
822
+ }
823
+ },
824
+ "end": "(?<='|\"|)",
825
+ "name": "meta.attribute-with-value.id.html",
826
+ "patterns": [
827
+ {
828
+ "include": "#string"
829
+ }
830
+ ]
831
+ },
832
+ "yfm": {
833
+ "patterns": [
834
+ {
835
+ "begin": "(?<!\\s)---\\n$",
836
+ "end": "^---\\s",
837
+ "name": "markup.raw.yaml.front-matter",
838
+ "patterns": [
839
+ {
840
+ "include": "source.yaml"
841
+ }
842
+ ]
843
+ }
844
+ ]
845
+ }
846
+ },
847
+ "scopeName": "text.html.handlebars"
848
+ }