chamba 0.7.0 → 0.9.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 (134) hide show
  1. package/LICENSE +53 -14
  2. package/README.md +34 -8
  3. package/dist/commands/advanced.js +7 -278
  4. package/dist/commands/dev.js +11 -612
  5. package/dist/commands/doctor.js +1 -29
  6. package/dist/commands/menu.js +1 -80
  7. package/dist/commands/onboard.js +6 -230
  8. package/dist/commands/settings.js +15 -349
  9. package/dist/lib/agent-commands.js +2 -0
  10. package/dist/lib/agent-context.js +6 -210
  11. package/dist/lib/browser.js +1 -40
  12. package/dist/lib/chamba-yaml.js +10 -191
  13. package/dist/lib/constants.js +1 -125
  14. package/dist/lib/dockerfile-builder.js +41 -261
  15. package/dist/lib/env.js +2 -78
  16. package/dist/lib/git-env.js +1 -21
  17. package/dist/lib/global-config.js +4 -66
  18. package/dist/lib/pnpm-store.js +1 -19
  19. package/dist/lib/ports.js +1 -210
  20. package/dist/lib/safe-rm.js +1 -36
  21. package/dist/lib/sessions.js +2 -34
  22. package/dist/lib/shadows.js +1 -176
  23. package/dist/lib/skills.js +2 -0
  24. package/dist/lib/templates.js +1 -0
  25. package/dist/lib/webterm.js +1 -305
  26. package/dist/lib/workspace-identity.js +4 -260
  27. package/package.json +4 -4
  28. package/templates/Dockerfile +15 -22
  29. package/templates/claude-statusline.sh +5 -7
  30. package/templates/context/baseline.md +4 -2
  31. package/templates/context/web-pane-craft.md +1 -1
  32. package/templates/pane-apps/client/assets/api-BBDf_rzz.js +12 -0
  33. package/templates/pane-apps/client/assets/api-DNLbSBpK.css +1 -0
  34. package/templates/pane-apps/client/assets/bee-B7t97l5B.webp +0 -0
  35. package/templates/pane-apps/client/assets/buzz-CUUsbnXH.mp3 +0 -0
  36. package/templates/pane-apps/client/assets/c-BNa-DeUl.json +3552 -0
  37. package/templates/pane-apps/client/assets/cpp-B-T4NRoH.json +20239 -0
  38. package/templates/pane-apps/client/assets/csharp-BbxHChhA.json +6010 -0
  39. package/templates/pane-apps/client/assets/css-CWCxuwmz.json +1860 -0
  40. package/templates/pane-apps/client/assets/diff-B-2N89g8.json +154 -0
  41. package/templates/pane-apps/client/assets/docker-DWTvYW26.json +103 -0
  42. package/templates/pane-apps/client/assets/files-BkmyervY.js +1 -0
  43. package/templates/pane-apps/client/assets/go-B2hyYeNg.json +3156 -0
  44. package/templates/pane-apps/client/assets/graphql-Z6Id2aNO.json +1292 -0
  45. package/templates/pane-apps/client/assets/home-3SeGzySM.css +1 -0
  46. package/templates/pane-apps/client/assets/home-Cu9xOd2i.js +1 -0
  47. package/templates/pane-apps/client/assets/html-BtzvlIfu.json +2627 -0
  48. package/templates/pane-apps/client/assets/ini-Bn3Twap1.json +108 -0
  49. package/templates/pane-apps/client/assets/java-C7t2dwLO.json +1885 -0
  50. package/templates/pane-apps/client/assets/javascript-DuC2v0C0.json +5996 -0
  51. package/templates/pane-apps/client/assets/json-CwdkWeV5.json +206 -0
  52. package/templates/pane-apps/client/assets/jsonc-MYWDbTU3.json +206 -0
  53. package/templates/pane-apps/client/assets/jsx-Cn8EZuIC.json +5996 -0
  54. package/templates/pane-apps/client/assets/kotlin-CFNOz1gw.json +580 -0
  55. package/templates/pane-apps/client/assets/make-BVnlFCcl.json +629 -0
  56. package/templates/pane-apps/client/assets/markdown-B4Xk2WM_.json +3263 -0
  57. package/templates/pane-apps/client/assets/php-CAQzQmmI.json +4188 -0
  58. package/templates/pane-apps/client/assets/pop-D5ZANBC3.mp3 +0 -0
  59. package/templates/pane-apps/client/assets/python-CYQee8m4.json +4174 -0
  60. package/templates/pane-apps/client/assets/reviews-DMrGB-kG.js +153 -0
  61. package/templates/pane-apps/client/assets/reviews-nK_yRav9.css +1 -0
  62. package/templates/pane-apps/client/assets/ruby-D7R58tus.json +3114 -0
  63. package/templates/pane-apps/client/assets/rust-BFBbFiei.json +1103 -0
  64. package/templates/pane-apps/client/assets/scss-TQRhBkPG.json +1874 -0
  65. package/templates/pane-apps/client/assets/shellscript-DieAkC4W.json +2375 -0
  66. package/templates/pane-apps/client/assets/specs-Cabb15F0.js +13 -0
  67. package/templates/pane-apps/client/assets/sql-Bxd030LV.json +634 -0
  68. package/templates/pane-apps/client/assets/toml-ChrKGzsV.json +430 -0
  69. package/templates/pane-apps/client/assets/tsx-D2e90MFw.json +5996 -0
  70. package/templates/pane-apps/client/assets/typescript-DonXQ_n1.json +5747 -0
  71. package/templates/pane-apps/client/assets/useNow-BHFKFraS.js +1 -0
  72. package/templates/pane-apps/client/assets/xml-B17r2RXF.json +382 -0
  73. package/templates/pane-apps/client/assets/yaml-CKn4h1zy.json +627 -0
  74. package/templates/pane-apps/client/home/index.html +16 -0
  75. package/templates/pane-apps/client/reviews/index.html +17 -0
  76. package/templates/pane-apps/client/specs/index.html +4 -2
  77. package/templates/pane-apps/server/home.mjs +12 -0
  78. package/templates/pane-apps/server/reviews.mjs +21 -0
  79. package/templates/pane-apps/server/specs.mjs +5 -1588
  80. package/templates/skills/chamba-statusline/SKILL.md +7 -19
  81. package/templates/skills/dx-review/SKILL.md +136 -0
  82. package/templates/skills/dx-review/references/acts.md +233 -0
  83. package/templates/skills/dx-spec/SKILL.md +230 -30
  84. package/templates/skills/dx-spec/references/principles-template.md +2 -0
  85. package/templates/skills/dx-spec/references/review-guide.md +6 -52
  86. package/templates/skills/dx-spec/references/spec-guide.md +25 -5
  87. package/templates/skills/dx-spec/references/stages.md +149 -60
  88. package/templates/skills/dx-spec-execute/SKILL.md +217 -38
  89. package/templates/startup.mjs +22 -16
  90. package/templates/tool-helper.sh +168 -0
  91. package/templates/webterm/README.md +82 -27
  92. package/templates/webterm/color.js +61 -0
  93. package/templates/webterm/config.js +55 -4
  94. package/templates/webterm/context/claude.md +0 -1
  95. package/templates/webterm/public/app/alerts.js +95 -14
  96. package/templates/webterm/public/app/anchored.js +81 -0
  97. package/templates/webterm/public/app/composer.js +37 -3
  98. package/templates/webterm/public/app/connection.js +23 -0
  99. package/templates/webterm/public/app/dom.js +3 -0
  100. package/templates/webterm/public/app/frames.js +52 -18
  101. package/templates/webterm/public/app/home-host.js +16 -0
  102. package/templates/webterm/public/app/main.js +24 -8
  103. package/templates/webterm/public/app/new-session.js +13 -41
  104. package/templates/webterm/public/app/palette.js +58 -0
  105. package/templates/webterm/public/app/pane-shape.js +169 -0
  106. package/templates/webterm/public/app/pane-shell.js +240 -135
  107. package/templates/webterm/public/app/pane.js +39 -24
  108. package/templates/webterm/public/app/reviews-host.js +19 -0
  109. package/templates/webterm/public/app/specs-host.js +12 -218
  110. package/templates/webterm/public/app/state.js +5 -0
  111. package/templates/webterm/public/app/tabs.js +6 -2
  112. package/templates/webterm/public/app/theme.js +75 -27
  113. package/templates/webterm/public/app/tool-host.js +318 -0
  114. package/templates/webterm/public/app/workspace-color.js +192 -0
  115. package/templates/webterm/public/index.html +22 -4
  116. package/templates/webterm/public/styles.css +195 -21
  117. package/templates/webterm/server.js +198 -150
  118. package/templates/webterm/tool-document.js +3 -2
  119. package/templates/webterm/tools/commands.js +61 -0
  120. package/templates/webterm/tools/home.js +58 -0
  121. package/templates/webterm/tools/index.js +26 -0
  122. package/templates/webterm/tools/mount.js +337 -0
  123. package/templates/webterm/tools/paths.js +34 -0
  124. package/templates/webterm/tools/reviews.js +137 -0
  125. package/templates/webterm/tools/specs.js +154 -0
  126. package/templates/webterm/typed-line.js +70 -7
  127. package/templates/context/context-usage.md +0 -1
  128. package/templates/context-usage.sh +0 -266
  129. package/templates/pane-apps/client/assets/specs-B1970L17.css +0 -1
  130. package/templates/pane-apps/client/assets/specs-cEee_SPn.js +0 -23
  131. package/templates/skills/dx-spec-config/SKILL.md +0 -313
  132. package/templates/skills/dx-spec-config/references/principles-template.md +0 -12
  133. package/templates/specs.sh +0 -106
  134. package/templates/webterm/specs.js +0 -358
@@ -0,0 +1,2627 @@
1
+ {
2
+ "displayName": "HTML",
3
+ "injections": {
4
+ "R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)": {
5
+ "patterns": [
6
+ {
7
+ "match": "<",
8
+ "name": "invalid.illegal.bad-angle-bracket.html"
9
+ }
10
+ ]
11
+ }
12
+ },
13
+ "name": "html",
14
+ "patterns": [
15
+ {
16
+ "include": "#xml-processing"
17
+ },
18
+ {
19
+ "include": "#comment"
20
+ },
21
+ {
22
+ "include": "#doctype"
23
+ },
24
+ {
25
+ "include": "#cdata"
26
+ },
27
+ {
28
+ "include": "#tags-valid"
29
+ },
30
+ {
31
+ "include": "#tags-invalid"
32
+ },
33
+ {
34
+ "include": "#entities"
35
+ }
36
+ ],
37
+ "repository": {
38
+ "attribute": {
39
+ "patterns": [
40
+ {
41
+ "begin": "(s(hape|cope|t(ep|art)|ize(s)?|p(ellcheck|an)|elected|lot|andbox|rc(set|doc|lang)?)|h(ttp-equiv|i(dden|gh)|e(ight|aders)|ref(lang)?)|n(o(nce|validate|module)|ame)|c(h(ecked|arset)|ite|o(nt(ent(editable)?|rols)|ords|l(s(pan)?|or))|lass|rossorigin)|t(ype(mustmatch)?|itle|a(rget|bindex)|ranslate)|i(s(map)?|n(tegrity|putmode)|tem(scope|type|id|prop|ref)|d)|op(timum|en)|d(i(sabled|r(name)?)|ownload|e(coding|f(er|ault))|at(etime|a)|raggable)|usemap|p(ing|oster|la(ysinline|ceholder)|attern|reload)|enctype|value|kind|for(m(novalidate|target|enctype|action|method)?)?|w(idth|rap)|l(ist|o(op|w)|a(ng|bel))|a(s(ync)?|c(ce(sskey|pt(-charset)?)|tion)|uto(c(omplete|apitalize)|play|focus)|l(t|low(usermedia|paymentrequest|fullscreen))|bbr)|r(ows(pan)?|e(versed|quired|ferrerpolicy|l|adonly))|m(in(length)?|u(ted|ltiple)|e(thod|dia)|a(nifest|x(length)?)))(?![-:\\w])",
42
+ "beginCaptures": {
43
+ "0": {
44
+ "name": "entity.other.attribute-name.html"
45
+ }
46
+ },
47
+ "end": "(?=\\s*+[^=\\s])",
48
+ "name": "meta.attribute.$1.html",
49
+ "patterns": [
50
+ {
51
+ "include": "#attribute-interior"
52
+ }
53
+ ]
54
+ },
55
+ {
56
+ "begin": "style(?![-:\\w])",
57
+ "beginCaptures": {
58
+ "0": {
59
+ "name": "entity.other.attribute-name.html"
60
+ }
61
+ },
62
+ "end": "(?=\\s*+[^=\\s])",
63
+ "name": "meta.attribute.style.html",
64
+ "patterns": [
65
+ {
66
+ "begin": "=",
67
+ "beginCaptures": {
68
+ "0": {
69
+ "name": "punctuation.separator.key-value.html"
70
+ }
71
+ },
72
+ "end": "(?<=[^=\\s])(?!\\s*=)|(?=/?>)",
73
+ "patterns": [
74
+ {
75
+ "begin": "(?=[^/<=>`\\s]|/(?!>))",
76
+ "end": "(?!\\G)",
77
+ "name": "meta.embedded.line.css",
78
+ "patterns": [
79
+ {
80
+ "captures": {
81
+ "0": {
82
+ "name": "source.css"
83
+ }
84
+ },
85
+ "match": "([^\"'/<=>`\\s]|/(?!>))+",
86
+ "name": "string.unquoted.html"
87
+ },
88
+ {
89
+ "begin": "\"",
90
+ "beginCaptures": {
91
+ "0": {
92
+ "name": "punctuation.definition.string.begin.html"
93
+ }
94
+ },
95
+ "contentName": "source.css",
96
+ "end": "(\")",
97
+ "endCaptures": {
98
+ "0": {
99
+ "name": "punctuation.definition.string.end.html"
100
+ },
101
+ "1": {
102
+ "name": "source.css"
103
+ }
104
+ },
105
+ "name": "string.quoted.double.html",
106
+ "patterns": [
107
+ {
108
+ "include": "#entities"
109
+ }
110
+ ]
111
+ },
112
+ {
113
+ "begin": "'",
114
+ "beginCaptures": {
115
+ "0": {
116
+ "name": "punctuation.definition.string.begin.html"
117
+ }
118
+ },
119
+ "contentName": "source.css",
120
+ "end": "(')",
121
+ "endCaptures": {
122
+ "0": {
123
+ "name": "punctuation.definition.string.end.html"
124
+ },
125
+ "1": {
126
+ "name": "source.css"
127
+ }
128
+ },
129
+ "name": "string.quoted.single.html",
130
+ "patterns": [
131
+ {
132
+ "include": "#entities"
133
+ }
134
+ ]
135
+ }
136
+ ]
137
+ },
138
+ {
139
+ "match": "=",
140
+ "name": "invalid.illegal.unexpected-equals-sign.html"
141
+ }
142
+ ]
143
+ }
144
+ ]
145
+ },
146
+ {
147
+ "begin": "on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o((?:n|ff)line)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d((?:|meta)data)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur))(?![-:\\w])",
148
+ "beginCaptures": {
149
+ "0": {
150
+ "name": "entity.other.attribute-name.html"
151
+ }
152
+ },
153
+ "end": "(?=\\s*+[^=\\s])",
154
+ "name": "meta.attribute.event-handler.$1.html",
155
+ "patterns": [
156
+ {
157
+ "begin": "=",
158
+ "beginCaptures": {
159
+ "0": {
160
+ "name": "punctuation.separator.key-value.html"
161
+ }
162
+ },
163
+ "end": "(?<=[^=\\s])(?!\\s*=)|(?=/?>)",
164
+ "patterns": [
165
+ {
166
+ "begin": "(?=[^/<=>`\\s]|/(?!>))",
167
+ "end": "(?!\\G)",
168
+ "name": "meta.embedded.line.js",
169
+ "patterns": [
170
+ {
171
+ "captures": {
172
+ "0": {
173
+ "name": "source.js"
174
+ },
175
+ "1": {
176
+ "patterns": [
177
+ {
178
+ "include": "source.js"
179
+ }
180
+ ]
181
+ }
182
+ },
183
+ "match": "(([^\"'/<=>`\\s]|/(?!>))+)",
184
+ "name": "string.unquoted.html"
185
+ },
186
+ {
187
+ "begin": "\"",
188
+ "beginCaptures": {
189
+ "0": {
190
+ "name": "punctuation.definition.string.begin.html"
191
+ }
192
+ },
193
+ "contentName": "source.js",
194
+ "end": "(\")",
195
+ "endCaptures": {
196
+ "0": {
197
+ "name": "punctuation.definition.string.end.html"
198
+ },
199
+ "1": {
200
+ "name": "source.js"
201
+ }
202
+ },
203
+ "name": "string.quoted.double.html",
204
+ "patterns": [
205
+ {
206
+ "captures": {
207
+ "0": {
208
+ "patterns": [
209
+ {
210
+ "include": "source.js"
211
+ }
212
+ ]
213
+ }
214
+ },
215
+ "match": "([^\\n\"/]|/(?![*/]))+"
216
+ },
217
+ {
218
+ "begin": "//",
219
+ "beginCaptures": {
220
+ "0": {
221
+ "name": "punctuation.definition.comment.js"
222
+ }
223
+ },
224
+ "end": "(?=\")|\\n",
225
+ "name": "comment.line.double-slash.js"
226
+ },
227
+ {
228
+ "begin": "/\\*",
229
+ "beginCaptures": {
230
+ "0": {
231
+ "name": "punctuation.definition.comment.begin.js"
232
+ }
233
+ },
234
+ "end": "(?=\")|\\*/",
235
+ "endCaptures": {
236
+ "0": {
237
+ "name": "punctuation.definition.comment.end.js"
238
+ }
239
+ },
240
+ "name": "comment.block.js"
241
+ }
242
+ ]
243
+ },
244
+ {
245
+ "begin": "'",
246
+ "beginCaptures": {
247
+ "0": {
248
+ "name": "punctuation.definition.string.begin.html"
249
+ }
250
+ },
251
+ "contentName": "source.js",
252
+ "end": "(')",
253
+ "endCaptures": {
254
+ "0": {
255
+ "name": "punctuation.definition.string.end.html"
256
+ },
257
+ "1": {
258
+ "name": "source.js"
259
+ }
260
+ },
261
+ "name": "string.quoted.single.html",
262
+ "patterns": [
263
+ {
264
+ "captures": {
265
+ "0": {
266
+ "patterns": [
267
+ {
268
+ "include": "source.js"
269
+ }
270
+ ]
271
+ }
272
+ },
273
+ "match": "([^\\n'/]|/(?![*/]))+"
274
+ },
275
+ {
276
+ "begin": "//",
277
+ "beginCaptures": {
278
+ "0": {
279
+ "name": "punctuation.definition.comment.js"
280
+ }
281
+ },
282
+ "end": "(?=')|\\n",
283
+ "name": "comment.line.double-slash.js"
284
+ },
285
+ {
286
+ "begin": "/\\*",
287
+ "beginCaptures": {
288
+ "0": {
289
+ "name": "punctuation.definition.comment.begin.js"
290
+ }
291
+ },
292
+ "end": "(?=')|\\*/",
293
+ "endCaptures": {
294
+ "0": {
295
+ "name": "punctuation.definition.comment.end.js"
296
+ }
297
+ },
298
+ "name": "comment.block.js"
299
+ }
300
+ ]
301
+ }
302
+ ]
303
+ },
304
+ {
305
+ "match": "=",
306
+ "name": "invalid.illegal.unexpected-equals-sign.html"
307
+ }
308
+ ]
309
+ }
310
+ ]
311
+ },
312
+ {
313
+ "begin": "(data-[-a-z]+)(?![-:\\w])",
314
+ "beginCaptures": {
315
+ "0": {
316
+ "name": "entity.other.attribute-name.html"
317
+ }
318
+ },
319
+ "end": "(?=\\s*+[^=\\s])",
320
+ "name": "meta.attribute.data-x.$1.html",
321
+ "patterns": [
322
+ {
323
+ "include": "#attribute-interior"
324
+ }
325
+ ]
326
+ },
327
+ {
328
+ "begin": "(align|bgcolor|border)(?![-:\\w])",
329
+ "beginCaptures": {
330
+ "0": {
331
+ "name": "invalid.deprecated.entity.other.attribute-name.html"
332
+ }
333
+ },
334
+ "end": "(?=\\s*+[^=\\s])",
335
+ "name": "meta.attribute.$1.html",
336
+ "patterns": [
337
+ {
338
+ "include": "#attribute-interior"
339
+ }
340
+ ]
341
+ },
342
+ {
343
+ "begin": "([^\\x00- \"'/<=>\\x7F-\\x{9F}﷐-﷯￾￿🿾🿿𯿾𯿿𿿾𿿿\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)",
344
+ "beginCaptures": {
345
+ "0": {
346
+ "name": "entity.other.attribute-name.html"
347
+ }
348
+ },
349
+ "end": "(?=\\s*+[^=\\s])",
350
+ "name": "meta.attribute.unrecognized.$1.html",
351
+ "patterns": [
352
+ {
353
+ "include": "#attribute-interior"
354
+ }
355
+ ]
356
+ },
357
+ {
358
+ "match": "[^>\\s]+",
359
+ "name": "invalid.illegal.character-not-allowed-here.html"
360
+ }
361
+ ]
362
+ },
363
+ "attribute-interior": {
364
+ "patterns": [
365
+ {
366
+ "begin": "=",
367
+ "beginCaptures": {
368
+ "0": {
369
+ "name": "punctuation.separator.key-value.html"
370
+ }
371
+ },
372
+ "end": "(?<=[^=\\s])(?!\\s*=)|(?=/?>)",
373
+ "patterns": [
374
+ {
375
+ "match": "([^\"'/<=>`\\s]|/(?!>))+",
376
+ "name": "string.unquoted.html"
377
+ },
378
+ {
379
+ "begin": "\"",
380
+ "beginCaptures": {
381
+ "0": {
382
+ "name": "punctuation.definition.string.begin.html"
383
+ }
384
+ },
385
+ "end": "\"",
386
+ "endCaptures": {
387
+ "0": {
388
+ "name": "punctuation.definition.string.end.html"
389
+ }
390
+ },
391
+ "name": "string.quoted.double.html",
392
+ "patterns": [
393
+ {
394
+ "include": "#entities"
395
+ }
396
+ ]
397
+ },
398
+ {
399
+ "begin": "'",
400
+ "beginCaptures": {
401
+ "0": {
402
+ "name": "punctuation.definition.string.begin.html"
403
+ }
404
+ },
405
+ "end": "'",
406
+ "endCaptures": {
407
+ "0": {
408
+ "name": "punctuation.definition.string.end.html"
409
+ }
410
+ },
411
+ "name": "string.quoted.single.html",
412
+ "patterns": [
413
+ {
414
+ "include": "#entities"
415
+ }
416
+ ]
417
+ },
418
+ {
419
+ "match": "=",
420
+ "name": "invalid.illegal.unexpected-equals-sign.html"
421
+ }
422
+ ]
423
+ }
424
+ ]
425
+ },
426
+ "cdata": {
427
+ "begin": "<!\\[CDATA\\[",
428
+ "beginCaptures": {
429
+ "0": {
430
+ "name": "punctuation.definition.tag.begin.html"
431
+ }
432
+ },
433
+ "contentName": "string.other.inline-data.html",
434
+ "end": "]]>",
435
+ "endCaptures": {
436
+ "0": {
437
+ "name": "punctuation.definition.tag.end.html"
438
+ }
439
+ },
440
+ "name": "meta.tag.metadata.cdata.html"
441
+ },
442
+ "comment": {
443
+ "begin": "<!--",
444
+ "captures": {
445
+ "0": {
446
+ "name": "punctuation.definition.comment.html"
447
+ }
448
+ },
449
+ "end": "-->",
450
+ "name": "comment.block.html",
451
+ "patterns": [
452
+ {
453
+ "match": "\\G-?>",
454
+ "name": "invalid.illegal.characters-not-allowed-here.html"
455
+ },
456
+ {
457
+ "match": "<!-(?:-(?!>)|(?=-->))",
458
+ "name": "invalid.illegal.characters-not-allowed-here.html"
459
+ },
460
+ {
461
+ "match": "--!>",
462
+ "name": "invalid.illegal.characters-not-allowed-here.html"
463
+ }
464
+ ]
465
+ },
466
+ "core-minus-invalid": {
467
+ "patterns": [
468
+ {
469
+ "include": "#xml-processing"
470
+ },
471
+ {
472
+ "include": "#comment"
473
+ },
474
+ {
475
+ "include": "#doctype"
476
+ },
477
+ {
478
+ "include": "#cdata"
479
+ },
480
+ {
481
+ "include": "#tags-valid"
482
+ },
483
+ {
484
+ "include": "#entities"
485
+ }
486
+ ]
487
+ },
488
+ "doctype": {
489
+ "begin": "<!(?=(?i:DOCTYPE\\s))",
490
+ "beginCaptures": {
491
+ "0": {
492
+ "name": "punctuation.definition.tag.begin.html"
493
+ }
494
+ },
495
+ "end": ">",
496
+ "endCaptures": {
497
+ "0": {
498
+ "name": "punctuation.definition.tag.end.html"
499
+ }
500
+ },
501
+ "name": "meta.tag.metadata.doctype.html",
502
+ "patterns": [
503
+ {
504
+ "match": "\\G(?i:DOCTYPE)",
505
+ "name": "entity.name.tag.html"
506
+ },
507
+ {
508
+ "begin": "\"",
509
+ "end": "\"",
510
+ "name": "string.quoted.double.html"
511
+ },
512
+ {
513
+ "match": "[^>\\s]+",
514
+ "name": "entity.other.attribute-name.html"
515
+ }
516
+ ]
517
+ },
518
+ "entities": {
519
+ "patterns": [
520
+ {
521
+ "captures": {
522
+ "1": {
523
+ "name": "punctuation.definition.entity.html"
524
+ },
525
+ "912": {
526
+ "name": "punctuation.definition.entity.html"
527
+ }
528
+ },
529
+ "match": "(&)(?=[A-Za-z])((a(s(ymp(eq)?|cr|t)|n(d(slope|[dv]|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a([a-h]))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|[Ee]|acir)?|elig|f(r)?|w((?:con|)int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))|(B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h([DUdu])?|times|H([DUdu])?|d([LRlr])|u([LRlr])|plus|D([LRlr])|v([HLRhlr])?|U([LRlr])|V([HLRhlr])?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1([24])|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))|(c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr([lr])|p(s|c([au]p)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w((?:con|)int)|lubs(uit)?|a(cute|p(s|c([au]p)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly((?:Double|)Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))|(d(s(c([ry])|trok|ol)|har([lr])|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up((?:Down|)Arrow)|VerticalBar|L(ong(RightArrow|Left((?:Right|)Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))|(e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t([ah])|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(D??ot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1([34]))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty((?:|Very)SmallSquare)|acr)))|(f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(l??ig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1([2-68])|78|2([35])|3([458])|45|5([68])))))|F(scr|cy|illed((?:|Very)SmallSquare)|o(uriertrf|pf|rAll)|fr))|(G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im([el])?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(q?less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l([Eaj])?|a(cute|p|mma(d)?)|rave|g(g)?|breve))|(h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok((?:lef|righ)tarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks([ew]arow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))|(i(s(cr|in(s(v)?|dot|[Ev])?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(i??nt)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f([fr])|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))|(j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))|(k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))|(l(s(h|cr|trok|im([eg])?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(d??il)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i([ef])?|Par))?|Har|o(ng(left((?:|right)arrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r((?:d|us)har))|ur((?:ds|u)har)|jcy|par(lt)?|e(s(s(sim|dot|eq(q?gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl([du])|e)|ac([ek]))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left((?:|right)arrow)|rightarrow|Left((?:Right|)Arrow))|pf|wer((?:Righ|Lef)tArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))|(M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u((?:lti|)map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))|(n(s(hort(parallel|mid)|c(cue|[er])?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|[Ee])?|b(set(eq(q)?)?|[Ee])?)|par|qsu([bp]e)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v([abc]))?|in(dot|v([abc])|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g([et]))|fr|w(near|ar(hk|r(ow)?)|Arr)|V([Dd]ash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft((?:|right)arrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr([cw])?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft((?:|right)arrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes((?:Slant|)Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi((?:n|ck)Space)|VeryThinSpace))|Jcy|fr|acute))|(o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|[fm])?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly((?:Double|)Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))|(p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d([ou])|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))|(q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))|(R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(d??il)|aron)|Barr|t(hree|imes|ri([ef]|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng([de]|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl([du])|e)|ac([ek]))|brk)|A(tail|arr|rr)))|(s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma([fv])?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot([be])?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u([bp])|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n([Ee])|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u([bp])|et(neq(q)?|eq(q)?)?)|n([Ee])|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar([ef]))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort((?:Right|Down|Up|Left)Arrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))|(t(s(hcy|c([ry])|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead((?:lef|righ)tarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i((?:n|ck)Space)|e(ta|refore))|c(y|edil|aron)|S(H??cy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a([bu])|ripleDot))|(u(scr|h(ar([lr])|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per((?:Righ|Lef)tArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))|(v(s(cr|u(pn([Ee])|bn([Ee])))|nsu([bp])|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))|(w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))|(X(scr|i|opf|fr)|x(s(cr|qcup)|h([Aa]rr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l([Aa]rr)|r([Aa]rr)|map))|(y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))|(z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(n?j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)))(;)",
530
+ "name": "constant.character.entity.named.$2.html"
531
+ },
532
+ {
533
+ "captures": {
534
+ "1": {
535
+ "name": "punctuation.definition.entity.html"
536
+ },
537
+ "3": {
538
+ "name": "punctuation.definition.entity.html"
539
+ }
540
+ },
541
+ "match": "(&)#[0-9]+(;)",
542
+ "name": "constant.character.entity.numeric.decimal.html"
543
+ },
544
+ {
545
+ "captures": {
546
+ "1": {
547
+ "name": "punctuation.definition.entity.html"
548
+ },
549
+ "3": {
550
+ "name": "punctuation.definition.entity.html"
551
+ }
552
+ },
553
+ "match": "(&)#[Xx]\\h+(;)",
554
+ "name": "constant.character.entity.numeric.hexadecimal.html"
555
+ },
556
+ {
557
+ "match": "&(?=[0-9A-Za-z]+;)",
558
+ "name": "invalid.illegal.ambiguous-ampersand.html"
559
+ }
560
+ ]
561
+ },
562
+ "math": {
563
+ "patterns": [
564
+ {
565
+ "begin": "(?i)(<)(math)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",
566
+ "beginCaptures": {
567
+ "0": {
568
+ "name": "meta.tag.structure.$2.start.html"
569
+ },
570
+ "1": {
571
+ "name": "punctuation.definition.tag.begin.html"
572
+ },
573
+ "2": {
574
+ "name": "entity.name.tag.html"
575
+ },
576
+ "3": {
577
+ "patterns": [
578
+ {
579
+ "include": "#attribute"
580
+ }
581
+ ]
582
+ },
583
+ "5": {
584
+ "name": "punctuation.definition.tag.end.html"
585
+ }
586
+ },
587
+ "end": "(?i)(</)(\\2)\\s*(>)",
588
+ "endCaptures": {
589
+ "0": {
590
+ "name": "meta.tag.structure.$2.end.html"
591
+ },
592
+ "1": {
593
+ "name": "punctuation.definition.tag.begin.html"
594
+ },
595
+ "2": {
596
+ "name": "entity.name.tag.html"
597
+ },
598
+ "3": {
599
+ "name": "punctuation.definition.tag.end.html"
600
+ }
601
+ },
602
+ "name": "meta.element.structure.$2.html",
603
+ "patterns": [
604
+ {
605
+ "begin": "(?<!>)\\G",
606
+ "end": ">",
607
+ "endCaptures": {
608
+ "0": {
609
+ "name": "punctuation.definition.tag.end.html"
610
+ }
611
+ },
612
+ "name": "meta.tag.structure.start.html",
613
+ "patterns": [
614
+ {
615
+ "include": "#attribute"
616
+ }
617
+ ]
618
+ },
619
+ {
620
+ "include": "#tags"
621
+ }
622
+ ]
623
+ }
624
+ ],
625
+ "repository": {
626
+ "attribute": {
627
+ "patterns": [
628
+ {
629
+ "begin": "(s(hift|ymmetric|cript(sizemultiplier|level|minsize)|t(ackalign|retchy)|ide|u([bp]scriptshift)|e(parator(s)?|lection)|rc)|h(eight|ref)|n(otation|umalign)|c(haralign|olumn(spa(n|cing)|width|lines|align)|lose|rossout)|i(n(dent(shift(first|last)?|target|align(first|last)?)|fixlinebreakstyle)|d)|o(pen|verflow)|d(i(splay(style)?|r)|e(nomalign|cimalpoint|pth))|position|e(dge|qual(columns|rows))|voffset|f(orm|ence|rame(spacing)?)|width|l(space|ine(thickness|leading|break(style|multchar)?)|o(ngdivstyle|cation)|ength|quote|argeop)|a(c(cent(under)?|tiontype)|l(t(text|img(-(height|valign|width))?)|ign(mentscope)?))|r(space|ow(spa(n|cing)|lines|align)|quote)|groupalign|x(link:href|mlns)|m(in(size|labelspacing)|ovablelimits|a(th(size|color|variant|background)|xsize))|bevelled)(?![-:\\w])",
630
+ "beginCaptures": {
631
+ "0": {
632
+ "name": "entity.other.attribute-name.html"
633
+ }
634
+ },
635
+ "end": "(?=\\s*+[^=\\s])",
636
+ "name": "meta.attribute.$1.html",
637
+ "patterns": [
638
+ {
639
+ "include": "#attribute-interior"
640
+ }
641
+ ]
642
+ },
643
+ {
644
+ "begin": "([^\\x00- \"'/<=>\\x7F-\\x{9F}﷐-﷯￾￿🿾🿿𯿾𯿿𿿾𿿿\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)",
645
+ "beginCaptures": {
646
+ "0": {
647
+ "name": "entity.other.attribute-name.html"
648
+ }
649
+ },
650
+ "end": "(?=\\s*+[^=\\s])",
651
+ "name": "meta.attribute.unrecognized.$1.html",
652
+ "patterns": [
653
+ {
654
+ "include": "#attribute-interior"
655
+ }
656
+ ]
657
+ },
658
+ {
659
+ "match": "[^>\\s]+",
660
+ "name": "invalid.illegal.character-not-allowed-here.html"
661
+ }
662
+ ]
663
+ },
664
+ "tags": {
665
+ "patterns": [
666
+ {
667
+ "include": "#comment"
668
+ },
669
+ {
670
+ "include": "#cdata"
671
+ },
672
+ {
673
+ "captures": {
674
+ "0": {
675
+ "name": "meta.tag.structure.math.$2.void.html"
676
+ },
677
+ "1": {
678
+ "name": "punctuation.definition.tag.begin.html"
679
+ },
680
+ "2": {
681
+ "name": "entity.name.tag.html"
682
+ },
683
+ "3": {
684
+ "patterns": [
685
+ {
686
+ "include": "#attribute"
687
+ }
688
+ ]
689
+ },
690
+ "5": {
691
+ "name": "punctuation.definition.tag.end.html"
692
+ }
693
+ },
694
+ "match": "(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>)",
695
+ "name": "meta.element.structure.math.$2.html"
696
+ },
697
+ {
698
+ "begin": "(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",
699
+ "beginCaptures": {
700
+ "0": {
701
+ "name": "meta.tag.structure.math.$2.start.html"
702
+ },
703
+ "1": {
704
+ "name": "punctuation.definition.tag.begin.html"
705
+ },
706
+ "2": {
707
+ "name": "entity.name.tag.html"
708
+ },
709
+ "3": {
710
+ "patterns": [
711
+ {
712
+ "include": "#attribute"
713
+ }
714
+ ]
715
+ },
716
+ "5": {
717
+ "name": "punctuation.definition.tag.end.html"
718
+ }
719
+ },
720
+ "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)",
721
+ "endCaptures": {
722
+ "0": {
723
+ "name": "meta.tag.structure.math.$2.end.html"
724
+ },
725
+ "1": {
726
+ "name": "punctuation.definition.tag.begin.html"
727
+ },
728
+ "2": {
729
+ "name": "entity.name.tag.html"
730
+ },
731
+ "3": {
732
+ "name": "punctuation.definition.tag.end.html"
733
+ },
734
+ "4": {
735
+ "name": "punctuation.definition.tag.end.html"
736
+ }
737
+ },
738
+ "name": "meta.element.structure.math.$2.html",
739
+ "patterns": [
740
+ {
741
+ "begin": "(?<!>)\\G",
742
+ "end": "(?=/>)|>",
743
+ "endCaptures": {
744
+ "0": {
745
+ "name": "punctuation.definition.tag.end.html"
746
+ }
747
+ },
748
+ "name": "meta.tag.structure.start.html",
749
+ "patterns": [
750
+ {
751
+ "include": "#attribute"
752
+ }
753
+ ]
754
+ },
755
+ {
756
+ "include": "#tags"
757
+ }
758
+ ]
759
+ },
760
+ {
761
+ "captures": {
762
+ "0": {
763
+ "name": "meta.tag.inline.math.$2.void.html"
764
+ },
765
+ "1": {
766
+ "name": "punctuation.definition.tag.begin.html"
767
+ },
768
+ "2": {
769
+ "name": "entity.name.tag.html"
770
+ },
771
+ "3": {
772
+ "patterns": [
773
+ {
774
+ "include": "#attribute"
775
+ }
776
+ ]
777
+ },
778
+ "5": {
779
+ "name": "punctuation.definition.tag.end.html"
780
+ }
781
+ },
782
+ "match": "(?i)(<)(m(?:[inos]|space|text|aligngroup|alignmark))(?=\\s|/?>)(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>)",
783
+ "name": "meta.element.inline.math.$2.html"
784
+ },
785
+ {
786
+ "begin": "(?i)(<)(m(?:[inos]|space|text|aligngroup|alignmark))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",
787
+ "beginCaptures": {
788
+ "0": {
789
+ "name": "meta.tag.inline.math.$2.start.html"
790
+ },
791
+ "1": {
792
+ "name": "punctuation.definition.tag.begin.html"
793
+ },
794
+ "2": {
795
+ "name": "entity.name.tag.html"
796
+ },
797
+ "3": {
798
+ "patterns": [
799
+ {
800
+ "include": "#attribute"
801
+ }
802
+ ]
803
+ },
804
+ "5": {
805
+ "name": "punctuation.definition.tag.end.html"
806
+ }
807
+ },
808
+ "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)",
809
+ "endCaptures": {
810
+ "0": {
811
+ "name": "meta.tag.inline.math.$2.end.html"
812
+ },
813
+ "1": {
814
+ "name": "punctuation.definition.tag.begin.html"
815
+ },
816
+ "2": {
817
+ "name": "entity.name.tag.html"
818
+ },
819
+ "3": {
820
+ "name": "punctuation.definition.tag.end.html"
821
+ },
822
+ "4": {
823
+ "name": "punctuation.definition.tag.end.html"
824
+ }
825
+ },
826
+ "name": "meta.element.inline.math.$2.html",
827
+ "patterns": [
828
+ {
829
+ "begin": "(?<!>)\\G",
830
+ "end": "(?=/>)|>",
831
+ "endCaptures": {
832
+ "0": {
833
+ "name": "punctuation.definition.tag.end.html"
834
+ }
835
+ },
836
+ "name": "meta.tag.inline.start.html",
837
+ "patterns": [
838
+ {
839
+ "include": "#attribute"
840
+ }
841
+ ]
842
+ },
843
+ {
844
+ "include": "#tags"
845
+ }
846
+ ]
847
+ },
848
+ {
849
+ "captures": {
850
+ "0": {
851
+ "name": "meta.tag.object.math.$2.void.html"
852
+ },
853
+ "1": {
854
+ "name": "punctuation.definition.tag.begin.html"
855
+ },
856
+ "2": {
857
+ "name": "entity.name.tag.html"
858
+ },
859
+ "3": {
860
+ "patterns": [
861
+ {
862
+ "include": "#attribute"
863
+ }
864
+ ]
865
+ },
866
+ "5": {
867
+ "name": "punctuation.definition.tag.end.html"
868
+ }
869
+ },
870
+ "match": "(?i)(<)(mglyph)(?=\\s|/?>)(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>)",
871
+ "name": "meta.element.object.math.$2.html"
872
+ },
873
+ {
874
+ "begin": "(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",
875
+ "beginCaptures": {
876
+ "0": {
877
+ "name": "meta.tag.object.math.$2.start.html"
878
+ },
879
+ "1": {
880
+ "name": "punctuation.definition.tag.begin.html"
881
+ },
882
+ "2": {
883
+ "name": "entity.name.tag.html"
884
+ },
885
+ "3": {
886
+ "patterns": [
887
+ {
888
+ "include": "#attribute"
889
+ }
890
+ ]
891
+ },
892
+ "5": {
893
+ "name": "punctuation.definition.tag.end.html"
894
+ }
895
+ },
896
+ "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)",
897
+ "endCaptures": {
898
+ "0": {
899
+ "name": "meta.tag.object.math.$2.end.html"
900
+ },
901
+ "1": {
902
+ "name": "punctuation.definition.tag.begin.html"
903
+ },
904
+ "2": {
905
+ "name": "entity.name.tag.html"
906
+ },
907
+ "3": {
908
+ "name": "punctuation.definition.tag.end.html"
909
+ },
910
+ "4": {
911
+ "name": "punctuation.definition.tag.end.html"
912
+ }
913
+ },
914
+ "name": "meta.element.object.math.$2.html",
915
+ "patterns": [
916
+ {
917
+ "begin": "(?<!>)\\G",
918
+ "end": "(?=/>)|>",
919
+ "endCaptures": {
920
+ "0": {
921
+ "name": "punctuation.definition.tag.end.html"
922
+ }
923
+ },
924
+ "name": "meta.tag.object.start.html",
925
+ "patterns": [
926
+ {
927
+ "include": "#attribute"
928
+ }
929
+ ]
930
+ },
931
+ {
932
+ "include": "#tags"
933
+ }
934
+ ]
935
+ },
936
+ {
937
+ "captures": {
938
+ "0": {
939
+ "name": "meta.tag.other.invalid.void.html"
940
+ },
941
+ "1": {
942
+ "name": "punctuation.definition.tag.begin.html"
943
+ },
944
+ "2": {
945
+ "name": "entity.name.tag.html"
946
+ },
947
+ "3": {
948
+ "name": "invalid.illegal.unrecognized-tag.html"
949
+ },
950
+ "4": {
951
+ "patterns": [
952
+ {
953
+ "include": "#attribute"
954
+ }
955
+ ]
956
+ },
957
+ "6": {
958
+ "name": "punctuation.definition.tag.end.html"
959
+ }
960
+ },
961
+ "match": "(?i)(<)(([:\\w]+))(?=\\s|/?>)(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>)",
962
+ "name": "meta.element.other.invalid.html"
963
+ },
964
+ {
965
+ "begin": "(?i)(<)((\\w[^>\\s]*))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",
966
+ "beginCaptures": {
967
+ "0": {
968
+ "name": "meta.tag.other.invalid.start.html"
969
+ },
970
+ "1": {
971
+ "name": "punctuation.definition.tag.begin.html"
972
+ },
973
+ "2": {
974
+ "name": "entity.name.tag.html"
975
+ },
976
+ "3": {
977
+ "name": "invalid.illegal.unrecognized-tag.html"
978
+ },
979
+ "4": {
980
+ "patterns": [
981
+ {
982
+ "include": "#attribute"
983
+ }
984
+ ]
985
+ },
986
+ "6": {
987
+ "name": "punctuation.definition.tag.end.html"
988
+ }
989
+ },
990
+ "end": "(?i)(</)((\\2))\\s*(>)|(/>)|(?=</\\w+)",
991
+ "endCaptures": {
992
+ "0": {
993
+ "name": "meta.tag.other.invalid.end.html"
994
+ },
995
+ "1": {
996
+ "name": "punctuation.definition.tag.begin.html"
997
+ },
998
+ "2": {
999
+ "name": "entity.name.tag.html"
1000
+ },
1001
+ "3": {
1002
+ "name": "invalid.illegal.unrecognized-tag.html"
1003
+ },
1004
+ "4": {
1005
+ "name": "punctuation.definition.tag.end.html"
1006
+ },
1007
+ "5": {
1008
+ "name": "punctuation.definition.tag.end.html"
1009
+ }
1010
+ },
1011
+ "name": "meta.element.other.invalid.html",
1012
+ "patterns": [
1013
+ {
1014
+ "begin": "(?<!>)\\G",
1015
+ "end": "(?=/>)|>",
1016
+ "endCaptures": {
1017
+ "0": {
1018
+ "name": "punctuation.definition.tag.end.html"
1019
+ }
1020
+ },
1021
+ "name": "meta.tag.other.invalid.start.html",
1022
+ "patterns": [
1023
+ {
1024
+ "include": "#attribute"
1025
+ }
1026
+ ]
1027
+ },
1028
+ {
1029
+ "include": "#tags"
1030
+ }
1031
+ ]
1032
+ },
1033
+ {
1034
+ "include": "#tags-invalid"
1035
+ }
1036
+ ]
1037
+ }
1038
+ }
1039
+ },
1040
+ "svg": {
1041
+ "patterns": [
1042
+ {
1043
+ "begin": "(?i)(<)(svg)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",
1044
+ "beginCaptures": {
1045
+ "0": {
1046
+ "name": "meta.tag.structure.$2.start.html"
1047
+ },
1048
+ "1": {
1049
+ "name": "punctuation.definition.tag.begin.html"
1050
+ },
1051
+ "2": {
1052
+ "name": "entity.name.tag.html"
1053
+ },
1054
+ "3": {
1055
+ "patterns": [
1056
+ {
1057
+ "include": "#attribute"
1058
+ }
1059
+ ]
1060
+ },
1061
+ "5": {
1062
+ "name": "punctuation.definition.tag.end.html"
1063
+ }
1064
+ },
1065
+ "end": "(?i)(</)(\\2)\\s*(>)",
1066
+ "endCaptures": {
1067
+ "0": {
1068
+ "name": "meta.tag.structure.$2.end.html"
1069
+ },
1070
+ "1": {
1071
+ "name": "punctuation.definition.tag.begin.html"
1072
+ },
1073
+ "2": {
1074
+ "name": "entity.name.tag.html"
1075
+ },
1076
+ "3": {
1077
+ "name": "punctuation.definition.tag.end.html"
1078
+ }
1079
+ },
1080
+ "name": "meta.element.structure.$2.html",
1081
+ "patterns": [
1082
+ {
1083
+ "begin": "(?<!>)\\G",
1084
+ "end": ">",
1085
+ "endCaptures": {
1086
+ "0": {
1087
+ "name": "punctuation.definition.tag.end.html"
1088
+ }
1089
+ },
1090
+ "name": "meta.tag.structure.start.html",
1091
+ "patterns": [
1092
+ {
1093
+ "include": "#attribute"
1094
+ }
1095
+ ]
1096
+ },
1097
+ {
1098
+ "include": "#tags"
1099
+ }
1100
+ ]
1101
+ }
1102
+ ],
1103
+ "repository": {
1104
+ "attribute": {
1105
+ "patterns": [
1106
+ {
1107
+ "begin": "(s(hape-rendering|ystemLanguage|cale|t(yle|itchTiles|op-(color|opacity)|dDeviation|em([hv])|artOffset|r(i(ng|kethrough-(thickness|position))|oke(-(opacity|dash(offset|array)|width|line(cap|join)|miterlimit))?))|urfaceScale|p(e(cular(Constant|Exponent)|ed)|acing|readMethod)|eed|lope)|h(oriz-(origin-x|adv-x)|eight|anging|ref(lang)?)|y([12]|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS((?:cript|tyle)Type)|lor(-(interpolation(-filters)?|profile|rendering))?)|ursor|l(ip(-(path|rule)|PathUnits)?|ass)|a(p-height|lcMode)|x)|t(ype|o|ext(-(decoration|anchor|rendering)|Length)|a(rget([XY])?|b(index|leValues))|ransform)|i(n(tercept|2)?|d(eographic)?|mage-rendering)|z(oomAndPan)?|o(p(erator|acity)|ver(flow|line-(thickness|position))|ffset|r(i(ent(ation)?|gin)|der))|d(y|i(splay|visor|ffuseConstant|rection)|ominant-baseline|ur|e(scent|celerate)|x)?|u(1|n(i(code(-(range|bidi))?|ts-per-em)|derline-(thickness|position))|2)|p(ing|oint(s(At([XYZ]))?|er-events)|a(nose-1|t(h(Length)?|tern(ContentUnits|Transform|Units))|int-order)|r(imitiveUnits|eserveA(spectRatio|lpha)))|e(n(d|able-background)|dgeMode|levation|x(ternalResourcesRequired|ponent))|v(i(sibility|ew(Box|Target))|-(hanging|ideographic|alphabetic|mathematical)|e(ctor-effect|r(sion|t-(origin-([xy])|adv-y)))|alues)|k([123]|e(y(Splines|Times|Points)|rn(ing|el(Matrix|UnitLength)))|4)?|f(y|il(ter(Res|Units)?|l(-(opacity|rule))?)|o(nt-(s(t(yle|retch)|ize(-adjust)?)|variant|family|weight)|rmat)|lood-(color|opacity)|r(om)?|x)|w(idth(s)?|ord-spacing|riting-mode)|l(i(ghting-color|mitingConeAngle)|ocal|e(ngthAdjust|tter-spacing)|ang)|a(scent|cc(umulate|ent-height)|ttribute(Name|Type)|zimuth|dditive|utoReverse|l(ignment-baseline|phabetic|lowReorder)|rabic-form|mplitude)|r(y|otate|e(s(tart|ult)|ndering-intent|peat(Count|Dur)|quired(Extensions|Features)|f([XY]|errerPolicy)|l)|adius|x)?|g([12]|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x([12]|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk((?:Content|)Units)?|thematical|rker(Height|-(start|end|mid)|Units|Width)|x))|b(y|ias|egin|ase(Profile|line-shift|Frequency)|box))(?![-:\\w])",
1108
+ "beginCaptures": {
1109
+ "0": {
1110
+ "name": "entity.other.attribute-name.html"
1111
+ }
1112
+ },
1113
+ "end": "(?=\\s*+[^=\\s])",
1114
+ "name": "meta.attribute.$1.html",
1115
+ "patterns": [
1116
+ {
1117
+ "include": "#attribute-interior"
1118
+ }
1119
+ ]
1120
+ },
1121
+ {
1122
+ "begin": "([^\\x00- \"'/<=>\\x7F-\\x{9F}﷐-﷯￾￿🿾🿿𯿾𯿿𿿾𿿿\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)",
1123
+ "beginCaptures": {
1124
+ "0": {
1125
+ "name": "entity.other.attribute-name.html"
1126
+ }
1127
+ },
1128
+ "end": "(?=\\s*+[^=\\s])",
1129
+ "name": "meta.attribute.unrecognized.$1.html",
1130
+ "patterns": [
1131
+ {
1132
+ "include": "#attribute-interior"
1133
+ }
1134
+ ]
1135
+ },
1136
+ {
1137
+ "match": "[^>\\s]+",
1138
+ "name": "invalid.illegal.character-not-allowed-here.html"
1139
+ }
1140
+ ]
1141
+ },
1142
+ "tags": {
1143
+ "patterns": [
1144
+ {
1145
+ "include": "#comment"
1146
+ },
1147
+ {
1148
+ "include": "#cdata"
1149
+ },
1150
+ {
1151
+ "captures": {
1152
+ "0": {
1153
+ "name": "meta.tag.metadata.svg.$2.void.html"
1154
+ },
1155
+ "1": {
1156
+ "name": "punctuation.definition.tag.begin.html"
1157
+ },
1158
+ "2": {
1159
+ "name": "entity.name.tag.html"
1160
+ },
1161
+ "3": {
1162
+ "patterns": [
1163
+ {
1164
+ "include": "#attribute"
1165
+ }
1166
+ ]
1167
+ },
1168
+ "5": {
1169
+ "name": "punctuation.definition.tag.end.html"
1170
+ }
1171
+ },
1172
+ "match": "(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>)",
1173
+ "name": "meta.element.metadata.svg.$2.html"
1174
+ },
1175
+ {
1176
+ "begin": "(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",
1177
+ "beginCaptures": {
1178
+ "0": {
1179
+ "name": "meta.tag.metadata.svg.$2.start.html"
1180
+ },
1181
+ "1": {
1182
+ "name": "punctuation.definition.tag.begin.html"
1183
+ },
1184
+ "2": {
1185
+ "name": "entity.name.tag.html"
1186
+ },
1187
+ "3": {
1188
+ "patterns": [
1189
+ {
1190
+ "include": "#attribute"
1191
+ }
1192
+ ]
1193
+ },
1194
+ "5": {
1195
+ "name": "punctuation.definition.tag.end.html"
1196
+ }
1197
+ },
1198
+ "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)",
1199
+ "endCaptures": {
1200
+ "0": {
1201
+ "name": "meta.tag.metadata.svg.$2.end.html"
1202
+ },
1203
+ "1": {
1204
+ "name": "punctuation.definition.tag.begin.html"
1205
+ },
1206
+ "2": {
1207
+ "name": "entity.name.tag.html"
1208
+ },
1209
+ "3": {
1210
+ "name": "punctuation.definition.tag.end.html"
1211
+ },
1212
+ "4": {
1213
+ "name": "punctuation.definition.tag.end.html"
1214
+ }
1215
+ },
1216
+ "name": "meta.element.metadata.svg.$2.html",
1217
+ "patterns": [
1218
+ {
1219
+ "begin": "(?<!>)\\G",
1220
+ "end": "(?=/>)|>",
1221
+ "endCaptures": {
1222
+ "0": {
1223
+ "name": "punctuation.definition.tag.end.html"
1224
+ }
1225
+ },
1226
+ "name": "meta.tag.metadata.start.html",
1227
+ "patterns": [
1228
+ {
1229
+ "include": "#attribute"
1230
+ }
1231
+ ]
1232
+ },
1233
+ {
1234
+ "include": "#tags"
1235
+ }
1236
+ ]
1237
+ },
1238
+ {
1239
+ "captures": {
1240
+ "0": {
1241
+ "name": "meta.tag.structure.svg.$2.void.html"
1242
+ },
1243
+ "1": {
1244
+ "name": "punctuation.definition.tag.begin.html"
1245
+ },
1246
+ "2": {
1247
+ "name": "entity.name.tag.html"
1248
+ },
1249
+ "3": {
1250
+ "patterns": [
1251
+ {
1252
+ "include": "#attribute"
1253
+ }
1254
+ ]
1255
+ },
1256
+ "5": {
1257
+ "name": "punctuation.definition.tag.end.html"
1258
+ }
1259
+ },
1260
+ "match": "(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>)",
1261
+ "name": "meta.element.structure.svg.$2.html"
1262
+ },
1263
+ {
1264
+ "begin": "(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",
1265
+ "beginCaptures": {
1266
+ "0": {
1267
+ "name": "meta.tag.structure.svg.$2.start.html"
1268
+ },
1269
+ "1": {
1270
+ "name": "punctuation.definition.tag.begin.html"
1271
+ },
1272
+ "2": {
1273
+ "name": "entity.name.tag.html"
1274
+ },
1275
+ "3": {
1276
+ "patterns": [
1277
+ {
1278
+ "include": "#attribute"
1279
+ }
1280
+ ]
1281
+ },
1282
+ "5": {
1283
+ "name": "punctuation.definition.tag.end.html"
1284
+ }
1285
+ },
1286
+ "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)",
1287
+ "endCaptures": {
1288
+ "0": {
1289
+ "name": "meta.tag.structure.svg.$2.end.html"
1290
+ },
1291
+ "1": {
1292
+ "name": "punctuation.definition.tag.begin.html"
1293
+ },
1294
+ "2": {
1295
+ "name": "entity.name.tag.html"
1296
+ },
1297
+ "3": {
1298
+ "name": "punctuation.definition.tag.end.html"
1299
+ },
1300
+ "4": {
1301
+ "name": "punctuation.definition.tag.end.html"
1302
+ }
1303
+ },
1304
+ "name": "meta.element.structure.svg.$2.html",
1305
+ "patterns": [
1306
+ {
1307
+ "begin": "(?<!>)\\G",
1308
+ "end": "(?=/>)|>",
1309
+ "endCaptures": {
1310
+ "0": {
1311
+ "name": "punctuation.definition.tag.end.html"
1312
+ }
1313
+ },
1314
+ "name": "meta.tag.structure.start.html",
1315
+ "patterns": [
1316
+ {
1317
+ "include": "#attribute"
1318
+ }
1319
+ ]
1320
+ },
1321
+ {
1322
+ "include": "#tags"
1323
+ }
1324
+ ]
1325
+ },
1326
+ {
1327
+ "captures": {
1328
+ "0": {
1329
+ "name": "meta.tag.inline.svg.$2.void.html"
1330
+ },
1331
+ "1": {
1332
+ "name": "punctuation.definition.tag.begin.html"
1333
+ },
1334
+ "2": {
1335
+ "name": "entity.name.tag.html"
1336
+ },
1337
+ "3": {
1338
+ "patterns": [
1339
+ {
1340
+ "include": "#attribute"
1341
+ }
1342
+ ]
1343
+ },
1344
+ "5": {
1345
+ "name": "punctuation.definition.tag.end.html"
1346
+ }
1347
+ },
1348
+ "match": "(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>)",
1349
+ "name": "meta.element.inline.svg.$2.html"
1350
+ },
1351
+ {
1352
+ "begin": "(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",
1353
+ "beginCaptures": {
1354
+ "0": {
1355
+ "name": "meta.tag.inline.svg.$2.start.html"
1356
+ },
1357
+ "1": {
1358
+ "name": "punctuation.definition.tag.begin.html"
1359
+ },
1360
+ "2": {
1361
+ "name": "entity.name.tag.html"
1362
+ },
1363
+ "3": {
1364
+ "patterns": [
1365
+ {
1366
+ "include": "#attribute"
1367
+ }
1368
+ ]
1369
+ },
1370
+ "5": {
1371
+ "name": "punctuation.definition.tag.end.html"
1372
+ }
1373
+ },
1374
+ "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)",
1375
+ "endCaptures": {
1376
+ "0": {
1377
+ "name": "meta.tag.inline.svg.$2.end.html"
1378
+ },
1379
+ "1": {
1380
+ "name": "punctuation.definition.tag.begin.html"
1381
+ },
1382
+ "2": {
1383
+ "name": "entity.name.tag.html"
1384
+ },
1385
+ "3": {
1386
+ "name": "punctuation.definition.tag.end.html"
1387
+ },
1388
+ "4": {
1389
+ "name": "punctuation.definition.tag.end.html"
1390
+ }
1391
+ },
1392
+ "name": "meta.element.inline.svg.$2.html",
1393
+ "patterns": [
1394
+ {
1395
+ "begin": "(?<!>)\\G",
1396
+ "end": "(?=/>)|>",
1397
+ "endCaptures": {
1398
+ "0": {
1399
+ "name": "punctuation.definition.tag.end.html"
1400
+ }
1401
+ },
1402
+ "name": "meta.tag.inline.start.html",
1403
+ "patterns": [
1404
+ {
1405
+ "include": "#attribute"
1406
+ }
1407
+ ]
1408
+ },
1409
+ {
1410
+ "include": "#tags"
1411
+ }
1412
+ ]
1413
+ },
1414
+ {
1415
+ "captures": {
1416
+ "0": {
1417
+ "name": "meta.tag.object.svg.$2.void.html"
1418
+ },
1419
+ "1": {
1420
+ "name": "punctuation.definition.tag.begin.html"
1421
+ },
1422
+ "2": {
1423
+ "name": "entity.name.tag.html"
1424
+ },
1425
+ "3": {
1426
+ "patterns": [
1427
+ {
1428
+ "include": "#attribute"
1429
+ }
1430
+ ]
1431
+ },
1432
+ "5": {
1433
+ "name": "punctuation.definition.tag.end.html"
1434
+ }
1435
+ },
1436
+ "match": "(?i)(<)(circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>)",
1437
+ "name": "meta.element.object.svg.$2.html"
1438
+ },
1439
+ {
1440
+ "begin": "(?i)(<)(a|circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",
1441
+ "beginCaptures": {
1442
+ "0": {
1443
+ "name": "meta.tag.object.svg.$2.start.html"
1444
+ },
1445
+ "1": {
1446
+ "name": "punctuation.definition.tag.begin.html"
1447
+ },
1448
+ "2": {
1449
+ "name": "entity.name.tag.html"
1450
+ },
1451
+ "3": {
1452
+ "patterns": [
1453
+ {
1454
+ "include": "#attribute"
1455
+ }
1456
+ ]
1457
+ },
1458
+ "5": {
1459
+ "name": "punctuation.definition.tag.end.html"
1460
+ }
1461
+ },
1462
+ "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)",
1463
+ "endCaptures": {
1464
+ "0": {
1465
+ "name": "meta.tag.object.svg.$2.end.html"
1466
+ },
1467
+ "1": {
1468
+ "name": "punctuation.definition.tag.begin.html"
1469
+ },
1470
+ "2": {
1471
+ "name": "entity.name.tag.html"
1472
+ },
1473
+ "3": {
1474
+ "name": "punctuation.definition.tag.end.html"
1475
+ },
1476
+ "4": {
1477
+ "name": "punctuation.definition.tag.end.html"
1478
+ }
1479
+ },
1480
+ "name": "meta.element.object.svg.$2.html",
1481
+ "patterns": [
1482
+ {
1483
+ "begin": "(?<!>)\\G",
1484
+ "end": "(?=/>)|>",
1485
+ "endCaptures": {
1486
+ "0": {
1487
+ "name": "punctuation.definition.tag.end.html"
1488
+ }
1489
+ },
1490
+ "name": "meta.tag.object.start.html",
1491
+ "patterns": [
1492
+ {
1493
+ "include": "#attribute"
1494
+ }
1495
+ ]
1496
+ },
1497
+ {
1498
+ "include": "#tags"
1499
+ }
1500
+ ]
1501
+ },
1502
+ {
1503
+ "captures": {
1504
+ "0": {
1505
+ "name": "meta.tag.other.svg.$2.void.html"
1506
+ },
1507
+ "1": {
1508
+ "name": "punctuation.definition.tag.begin.html"
1509
+ },
1510
+ "2": {
1511
+ "name": "entity.name.tag.html"
1512
+ },
1513
+ "3": {
1514
+ "name": "invalid.deprecated.html"
1515
+ },
1516
+ "4": {
1517
+ "patterns": [
1518
+ {
1519
+ "include": "#attribute"
1520
+ }
1521
+ ]
1522
+ },
1523
+ "6": {
1524
+ "name": "punctuation.definition.tag.end.html"
1525
+ }
1526
+ },
1527
+ "match": "(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>)",
1528
+ "name": "meta.element.other.svg.$2.html"
1529
+ },
1530
+ {
1531
+ "begin": "(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",
1532
+ "beginCaptures": {
1533
+ "0": {
1534
+ "name": "meta.tag.other.svg.$2.start.html"
1535
+ },
1536
+ "1": {
1537
+ "name": "punctuation.definition.tag.begin.html"
1538
+ },
1539
+ "2": {
1540
+ "name": "entity.name.tag.html"
1541
+ },
1542
+ "3": {
1543
+ "name": "invalid.deprecated.html"
1544
+ },
1545
+ "4": {
1546
+ "patterns": [
1547
+ {
1548
+ "include": "#attribute"
1549
+ }
1550
+ ]
1551
+ },
1552
+ "6": {
1553
+ "name": "punctuation.definition.tag.end.html"
1554
+ }
1555
+ },
1556
+ "end": "(?i)(</)((\\2))\\s*(>)|(/>)|(?=</\\w+)",
1557
+ "endCaptures": {
1558
+ "0": {
1559
+ "name": "meta.tag.other.svg.$2.end.html"
1560
+ },
1561
+ "1": {
1562
+ "name": "punctuation.definition.tag.begin.html"
1563
+ },
1564
+ "2": {
1565
+ "name": "entity.name.tag.html"
1566
+ },
1567
+ "3": {
1568
+ "name": "invalid.deprecated.html"
1569
+ },
1570
+ "4": {
1571
+ "name": "punctuation.definition.tag.end.html"
1572
+ },
1573
+ "5": {
1574
+ "name": "punctuation.definition.tag.end.html"
1575
+ }
1576
+ },
1577
+ "name": "meta.element.other.svg.$2.html",
1578
+ "patterns": [
1579
+ {
1580
+ "begin": "(?<!>)\\G",
1581
+ "end": "(?=/>)|>",
1582
+ "endCaptures": {
1583
+ "0": {
1584
+ "name": "punctuation.definition.tag.end.html"
1585
+ }
1586
+ },
1587
+ "name": "meta.tag.other.start.html",
1588
+ "patterns": [
1589
+ {
1590
+ "include": "#attribute"
1591
+ }
1592
+ ]
1593
+ },
1594
+ {
1595
+ "include": "#tags"
1596
+ }
1597
+ ]
1598
+ },
1599
+ {
1600
+ "captures": {
1601
+ "0": {
1602
+ "name": "meta.tag.other.invalid.void.html"
1603
+ },
1604
+ "1": {
1605
+ "name": "punctuation.definition.tag.begin.html"
1606
+ },
1607
+ "2": {
1608
+ "name": "entity.name.tag.html"
1609
+ },
1610
+ "3": {
1611
+ "name": "invalid.illegal.unrecognized-tag.html"
1612
+ },
1613
+ "4": {
1614
+ "patterns": [
1615
+ {
1616
+ "include": "#attribute"
1617
+ }
1618
+ ]
1619
+ },
1620
+ "6": {
1621
+ "name": "punctuation.definition.tag.end.html"
1622
+ }
1623
+ },
1624
+ "match": "(?i)(<)(([:\\w]+))(?=\\s|/?>)(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>)",
1625
+ "name": "meta.element.other.invalid.html"
1626
+ },
1627
+ {
1628
+ "begin": "(?i)(<)((\\w[^>\\s]*))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",
1629
+ "beginCaptures": {
1630
+ "0": {
1631
+ "name": "meta.tag.other.invalid.start.html"
1632
+ },
1633
+ "1": {
1634
+ "name": "punctuation.definition.tag.begin.html"
1635
+ },
1636
+ "2": {
1637
+ "name": "entity.name.tag.html"
1638
+ },
1639
+ "3": {
1640
+ "name": "invalid.illegal.unrecognized-tag.html"
1641
+ },
1642
+ "4": {
1643
+ "patterns": [
1644
+ {
1645
+ "include": "#attribute"
1646
+ }
1647
+ ]
1648
+ },
1649
+ "6": {
1650
+ "name": "punctuation.definition.tag.end.html"
1651
+ }
1652
+ },
1653
+ "end": "(?i)(</)((\\2))\\s*(>)|(/>)|(?=</\\w+)",
1654
+ "endCaptures": {
1655
+ "0": {
1656
+ "name": "meta.tag.other.invalid.end.html"
1657
+ },
1658
+ "1": {
1659
+ "name": "punctuation.definition.tag.begin.html"
1660
+ },
1661
+ "2": {
1662
+ "name": "entity.name.tag.html"
1663
+ },
1664
+ "3": {
1665
+ "name": "invalid.illegal.unrecognized-tag.html"
1666
+ },
1667
+ "4": {
1668
+ "name": "punctuation.definition.tag.end.html"
1669
+ },
1670
+ "5": {
1671
+ "name": "punctuation.definition.tag.end.html"
1672
+ }
1673
+ },
1674
+ "name": "meta.element.other.invalid.html",
1675
+ "patterns": [
1676
+ {
1677
+ "begin": "(?<!>)\\G",
1678
+ "end": "(?=/>)|>",
1679
+ "endCaptures": {
1680
+ "0": {
1681
+ "name": "punctuation.definition.tag.end.html"
1682
+ }
1683
+ },
1684
+ "name": "meta.tag.other.invalid.start.html",
1685
+ "patterns": [
1686
+ {
1687
+ "include": "#attribute"
1688
+ }
1689
+ ]
1690
+ },
1691
+ {
1692
+ "include": "#tags"
1693
+ }
1694
+ ]
1695
+ },
1696
+ {
1697
+ "include": "#tags-invalid"
1698
+ }
1699
+ ]
1700
+ }
1701
+ }
1702
+ },
1703
+ "tags-invalid": {
1704
+ "patterns": [
1705
+ {
1706
+ "begin": "(</?)((\\w[^>\\s]*))(?<!/)",
1707
+ "beginCaptures": {
1708
+ "1": {
1709
+ "name": "punctuation.definition.tag.begin.html"
1710
+ },
1711
+ "2": {
1712
+ "name": "entity.name.tag.html"
1713
+ },
1714
+ "3": {
1715
+ "name": "invalid.illegal.unrecognized-tag.html"
1716
+ }
1717
+ },
1718
+ "end": "((?: ?/)?>)",
1719
+ "endCaptures": {
1720
+ "1": {
1721
+ "name": "punctuation.definition.tag.end.html"
1722
+ }
1723
+ },
1724
+ "name": "meta.tag.other.$2.html",
1725
+ "patterns": [
1726
+ {
1727
+ "include": "#attribute"
1728
+ }
1729
+ ]
1730
+ }
1731
+ ]
1732
+ },
1733
+ "tags-valid": {
1734
+ "patterns": [
1735
+ {
1736
+ "begin": "(^[\\t ]+)?(?=<(?i:style)\\b(?!-))",
1737
+ "beginCaptures": {
1738
+ "1": {
1739
+ "name": "punctuation.whitespace.embedded.leading.html"
1740
+ }
1741
+ },
1742
+ "end": "(?!\\G)([\\t ]*$\\n?)?",
1743
+ "endCaptures": {
1744
+ "1": {
1745
+ "name": "punctuation.whitespace.embedded.trailing.html"
1746
+ }
1747
+ },
1748
+ "patterns": [
1749
+ {
1750
+ "begin": "(?i)(<)(style)(?=\\s|/?>)",
1751
+ "beginCaptures": {
1752
+ "0": {
1753
+ "name": "meta.tag.metadata.style.start.html"
1754
+ },
1755
+ "1": {
1756
+ "name": "punctuation.definition.tag.begin.html"
1757
+ },
1758
+ "2": {
1759
+ "name": "entity.name.tag.html"
1760
+ }
1761
+ },
1762
+ "end": "(?i)((<)/)(style)\\s*(>)",
1763
+ "endCaptures": {
1764
+ "0": {
1765
+ "name": "meta.tag.metadata.style.end.html"
1766
+ },
1767
+ "1": {
1768
+ "name": "punctuation.definition.tag.begin.html"
1769
+ },
1770
+ "2": {
1771
+ "name": "source.css-ignored-vscode"
1772
+ },
1773
+ "3": {
1774
+ "name": "entity.name.tag.html"
1775
+ },
1776
+ "4": {
1777
+ "name": "punctuation.definition.tag.end.html"
1778
+ }
1779
+ },
1780
+ "name": "meta.embedded.block.html",
1781
+ "patterns": [
1782
+ {
1783
+ "begin": "\\G",
1784
+ "captures": {
1785
+ "1": {
1786
+ "name": "punctuation.definition.tag.end.html"
1787
+ }
1788
+ },
1789
+ "end": "(>)",
1790
+ "name": "meta.tag.metadata.style.start.html",
1791
+ "patterns": [
1792
+ {
1793
+ "include": "#attribute"
1794
+ }
1795
+ ]
1796
+ },
1797
+ {
1798
+ "begin": "(?!\\G)",
1799
+ "end": "(?=</(?i:style))",
1800
+ "name": "source.css",
1801
+ "patterns": [
1802
+ {
1803
+ "include": "source.css"
1804
+ }
1805
+ ]
1806
+ }
1807
+ ]
1808
+ }
1809
+ ]
1810
+ },
1811
+ {
1812
+ "begin": "(^[\\t ]+)?(?=<(?i:script)\\b(?!-))",
1813
+ "beginCaptures": {
1814
+ "1": {
1815
+ "name": "punctuation.whitespace.embedded.leading.html"
1816
+ }
1817
+ },
1818
+ "end": "(?!\\G)([\\t ]*$\\n?)?",
1819
+ "endCaptures": {
1820
+ "1": {
1821
+ "name": "punctuation.whitespace.embedded.trailing.html"
1822
+ }
1823
+ },
1824
+ "patterns": [
1825
+ {
1826
+ "begin": "(<)((?i:script))\\b",
1827
+ "beginCaptures": {
1828
+ "0": {
1829
+ "name": "meta.tag.metadata.script.start.html"
1830
+ },
1831
+ "1": {
1832
+ "name": "punctuation.definition.tag.begin.html"
1833
+ },
1834
+ "2": {
1835
+ "name": "entity.name.tag.html"
1836
+ }
1837
+ },
1838
+ "end": "(/)((?i:script))(>)",
1839
+ "endCaptures": {
1840
+ "0": {
1841
+ "name": "meta.tag.metadata.script.end.html"
1842
+ },
1843
+ "1": {
1844
+ "name": "punctuation.definition.tag.begin.html"
1845
+ },
1846
+ "2": {
1847
+ "name": "entity.name.tag.html"
1848
+ },
1849
+ "3": {
1850
+ "name": "punctuation.definition.tag.end.html"
1851
+ }
1852
+ },
1853
+ "name": "meta.embedded.block.html",
1854
+ "patterns": [
1855
+ {
1856
+ "begin": "\\G",
1857
+ "end": "(?=/)",
1858
+ "patterns": [
1859
+ {
1860
+ "begin": "(>)",
1861
+ "beginCaptures": {
1862
+ "0": {
1863
+ "name": "meta.tag.metadata.script.start.html"
1864
+ },
1865
+ "1": {
1866
+ "name": "punctuation.definition.tag.end.html"
1867
+ }
1868
+ },
1869
+ "end": "((<))(?=/(?i:script))",
1870
+ "endCaptures": {
1871
+ "0": {
1872
+ "name": "meta.tag.metadata.script.end.html"
1873
+ },
1874
+ "1": {
1875
+ "name": "punctuation.definition.tag.begin.html"
1876
+ },
1877
+ "2": {
1878
+ "name": "source.js-ignored-vscode"
1879
+ }
1880
+ },
1881
+ "patterns": [
1882
+ {
1883
+ "begin": "\\G",
1884
+ "end": "(?=</(?i:script))",
1885
+ "name": "source.js",
1886
+ "patterns": [
1887
+ {
1888
+ "begin": "(^[\\t ]+)?(?=//)",
1889
+ "beginCaptures": {
1890
+ "1": {
1891
+ "name": "punctuation.whitespace.comment.leading.js"
1892
+ }
1893
+ },
1894
+ "end": "(?!\\G)",
1895
+ "patterns": [
1896
+ {
1897
+ "begin": "//",
1898
+ "beginCaptures": {
1899
+ "0": {
1900
+ "name": "punctuation.definition.comment.js"
1901
+ }
1902
+ },
1903
+ "end": "(?=</script)|\\n",
1904
+ "name": "comment.line.double-slash.js"
1905
+ }
1906
+ ]
1907
+ },
1908
+ {
1909
+ "begin": "/\\*",
1910
+ "captures": {
1911
+ "0": {
1912
+ "name": "punctuation.definition.comment.js"
1913
+ }
1914
+ },
1915
+ "end": "\\*/|(?=</script)",
1916
+ "name": "comment.block.js"
1917
+ },
1918
+ {
1919
+ "include": "source.js"
1920
+ }
1921
+ ]
1922
+ }
1923
+ ]
1924
+ },
1925
+ {
1926
+ "begin": "\\G",
1927
+ "end": "(?i:(?=>|type(?=[=\\s])(?!\\s*=\\s*(''|\"\"|([\"']?)(text/(javascript(1\\.[0-5])?|x-javascript|jscript|livescript|(x-)?ecmascript|babel)|application/((?:(x-)?jav|(x-)?ecm)ascript)|module)[\"'>\\s]))))",
1928
+ "name": "meta.tag.metadata.script.start.html",
1929
+ "patterns": [
1930
+ {
1931
+ "include": "#attribute"
1932
+ }
1933
+ ]
1934
+ },
1935
+ {
1936
+ "begin": "(?i:(?=type\\s*=\\s*([\"']?)text/(x-handlebars|(x-(handlebars-)?|ng-)?template|html)[\"'>\\s]))",
1937
+ "end": "((<))(?=/(?i:script))",
1938
+ "endCaptures": {
1939
+ "0": {
1940
+ "name": "meta.tag.metadata.script.end.html"
1941
+ },
1942
+ "1": {
1943
+ "name": "punctuation.definition.tag.begin.html"
1944
+ },
1945
+ "2": {
1946
+ "name": "text.html.basic"
1947
+ }
1948
+ },
1949
+ "patterns": [
1950
+ {
1951
+ "begin": "\\G",
1952
+ "end": "(>)",
1953
+ "endCaptures": {
1954
+ "1": {
1955
+ "name": "punctuation.definition.tag.end.html"
1956
+ }
1957
+ },
1958
+ "name": "meta.tag.metadata.script.start.html",
1959
+ "patterns": [
1960
+ {
1961
+ "include": "#attribute"
1962
+ }
1963
+ ]
1964
+ },
1965
+ {
1966
+ "begin": "(?!\\G)",
1967
+ "end": "(?=</(?i:script))",
1968
+ "name": "text.html.basic",
1969
+ "patterns": [
1970
+ {
1971
+ "include": "text.html.basic"
1972
+ }
1973
+ ]
1974
+ }
1975
+ ]
1976
+ },
1977
+ {
1978
+ "begin": "(?=(?i:type))",
1979
+ "end": "(<)(?=/(?i:script))",
1980
+ "endCaptures": {
1981
+ "0": {
1982
+ "name": "meta.tag.metadata.script.end.html"
1983
+ },
1984
+ "1": {
1985
+ "name": "punctuation.definition.tag.begin.html"
1986
+ }
1987
+ },
1988
+ "patterns": [
1989
+ {
1990
+ "begin": "\\G",
1991
+ "end": "(>)",
1992
+ "endCaptures": {
1993
+ "1": {
1994
+ "name": "punctuation.definition.tag.end.html"
1995
+ }
1996
+ },
1997
+ "name": "meta.tag.metadata.script.start.html",
1998
+ "patterns": [
1999
+ {
2000
+ "include": "#attribute"
2001
+ }
2002
+ ]
2003
+ },
2004
+ {
2005
+ "begin": "(?!\\G)",
2006
+ "end": "(?=</(?i:script))",
2007
+ "name": "source.unknown"
2008
+ }
2009
+ ]
2010
+ }
2011
+ ]
2012
+ }
2013
+ ]
2014
+ }
2015
+ ]
2016
+ },
2017
+ {
2018
+ "begin": "(?i)(<)(base|link|meta)(?=\\s|/?>)",
2019
+ "beginCaptures": {
2020
+ "1": {
2021
+ "name": "punctuation.definition.tag.begin.html"
2022
+ },
2023
+ "2": {
2024
+ "name": "entity.name.tag.html"
2025
+ }
2026
+ },
2027
+ "end": "/?>",
2028
+ "endCaptures": {
2029
+ "0": {
2030
+ "name": "punctuation.definition.tag.end.html"
2031
+ }
2032
+ },
2033
+ "name": "meta.tag.metadata.$2.void.html",
2034
+ "patterns": [
2035
+ {
2036
+ "include": "#attribute"
2037
+ }
2038
+ ]
2039
+ },
2040
+ {
2041
+ "begin": "(?i)(<)(noscript|title)(?=\\s|/?>)",
2042
+ "beginCaptures": {
2043
+ "1": {
2044
+ "name": "punctuation.definition.tag.begin.html"
2045
+ },
2046
+ "2": {
2047
+ "name": "entity.name.tag.html"
2048
+ }
2049
+ },
2050
+ "end": ">",
2051
+ "endCaptures": {
2052
+ "0": {
2053
+ "name": "punctuation.definition.tag.end.html"
2054
+ }
2055
+ },
2056
+ "name": "meta.tag.metadata.$2.start.html",
2057
+ "patterns": [
2058
+ {
2059
+ "include": "#attribute"
2060
+ }
2061
+ ]
2062
+ },
2063
+ {
2064
+ "begin": "(?i)(</)(noscript|title)(?=\\s|/?>)",
2065
+ "beginCaptures": {
2066
+ "1": {
2067
+ "name": "punctuation.definition.tag.begin.html"
2068
+ },
2069
+ "2": {
2070
+ "name": "entity.name.tag.html"
2071
+ }
2072
+ },
2073
+ "end": ">",
2074
+ "endCaptures": {
2075
+ "0": {
2076
+ "name": "punctuation.definition.tag.end.html"
2077
+ }
2078
+ },
2079
+ "name": "meta.tag.metadata.$2.end.html",
2080
+ "patterns": [
2081
+ {
2082
+ "include": "#attribute"
2083
+ }
2084
+ ]
2085
+ },
2086
+ {
2087
+ "begin": "(?i)(<)(col|hr|input)(?=\\s|/?>)",
2088
+ "beginCaptures": {
2089
+ "1": {
2090
+ "name": "punctuation.definition.tag.begin.html"
2091
+ },
2092
+ "2": {
2093
+ "name": "entity.name.tag.html"
2094
+ }
2095
+ },
2096
+ "end": "/?>",
2097
+ "endCaptures": {
2098
+ "0": {
2099
+ "name": "punctuation.definition.tag.end.html"
2100
+ }
2101
+ },
2102
+ "name": "meta.tag.structure.$2.void.html",
2103
+ "patterns": [
2104
+ {
2105
+ "include": "#attribute"
2106
+ }
2107
+ ]
2108
+ },
2109
+ {
2110
+ "begin": "(?i)(<)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\s|/?>)",
2111
+ "beginCaptures": {
2112
+ "1": {
2113
+ "name": "punctuation.definition.tag.begin.html"
2114
+ },
2115
+ "2": {
2116
+ "name": "entity.name.tag.html"
2117
+ }
2118
+ },
2119
+ "end": ">",
2120
+ "endCaptures": {
2121
+ "0": {
2122
+ "name": "punctuation.definition.tag.end.html"
2123
+ }
2124
+ },
2125
+ "name": "meta.tag.structure.$2.start.html",
2126
+ "patterns": [
2127
+ {
2128
+ "include": "#attribute"
2129
+ }
2130
+ ]
2131
+ },
2132
+ {
2133
+ "begin": "(?i)(</)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\s|/?>)",
2134
+ "beginCaptures": {
2135
+ "1": {
2136
+ "name": "punctuation.definition.tag.begin.html"
2137
+ },
2138
+ "2": {
2139
+ "name": "entity.name.tag.html"
2140
+ }
2141
+ },
2142
+ "end": ">",
2143
+ "endCaptures": {
2144
+ "0": {
2145
+ "name": "punctuation.definition.tag.end.html"
2146
+ }
2147
+ },
2148
+ "name": "meta.tag.structure.$2.end.html",
2149
+ "patterns": [
2150
+ {
2151
+ "include": "#attribute"
2152
+ }
2153
+ ]
2154
+ },
2155
+ {
2156
+ "begin": "(?i)(<)(area|br|wbr)(?=\\s|/?>)",
2157
+ "beginCaptures": {
2158
+ "1": {
2159
+ "name": "punctuation.definition.tag.begin.html"
2160
+ },
2161
+ "2": {
2162
+ "name": "entity.name.tag.html"
2163
+ }
2164
+ },
2165
+ "end": "/?>",
2166
+ "endCaptures": {
2167
+ "0": {
2168
+ "name": "punctuation.definition.tag.end.html"
2169
+ }
2170
+ },
2171
+ "name": "meta.tag.inline.$2.void.html",
2172
+ "patterns": [
2173
+ {
2174
+ "include": "#attribute"
2175
+ }
2176
+ ]
2177
+ },
2178
+ {
2179
+ "begin": "(?i)(<)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\s|/?>)",
2180
+ "beginCaptures": {
2181
+ "1": {
2182
+ "name": "punctuation.definition.tag.begin.html"
2183
+ },
2184
+ "2": {
2185
+ "name": "entity.name.tag.html"
2186
+ }
2187
+ },
2188
+ "end": ">",
2189
+ "endCaptures": {
2190
+ "0": {
2191
+ "name": "punctuation.definition.tag.end.html"
2192
+ }
2193
+ },
2194
+ "name": "meta.tag.inline.$2.start.html",
2195
+ "patterns": [
2196
+ {
2197
+ "include": "#attribute"
2198
+ }
2199
+ ]
2200
+ },
2201
+ {
2202
+ "begin": "(?i)(</)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\s|/?>)",
2203
+ "beginCaptures": {
2204
+ "1": {
2205
+ "name": "punctuation.definition.tag.begin.html"
2206
+ },
2207
+ "2": {
2208
+ "name": "entity.name.tag.html"
2209
+ }
2210
+ },
2211
+ "end": ">",
2212
+ "endCaptures": {
2213
+ "0": {
2214
+ "name": "punctuation.definition.tag.end.html"
2215
+ }
2216
+ },
2217
+ "name": "meta.tag.inline.$2.end.html",
2218
+ "patterns": [
2219
+ {
2220
+ "include": "#attribute"
2221
+ }
2222
+ ]
2223
+ },
2224
+ {
2225
+ "begin": "(?i)(<)(embed|img|param|source|track)(?=\\s|/?>)",
2226
+ "beginCaptures": {
2227
+ "1": {
2228
+ "name": "punctuation.definition.tag.begin.html"
2229
+ },
2230
+ "2": {
2231
+ "name": "entity.name.tag.html"
2232
+ }
2233
+ },
2234
+ "end": "/?>",
2235
+ "endCaptures": {
2236
+ "0": {
2237
+ "name": "punctuation.definition.tag.end.html"
2238
+ }
2239
+ },
2240
+ "name": "meta.tag.object.$2.void.html",
2241
+ "patterns": [
2242
+ {
2243
+ "include": "#attribute"
2244
+ }
2245
+ ]
2246
+ },
2247
+ {
2248
+ "begin": "(?i)(<)(audio|canvas|iframe|object|picture|video)(?=\\s|/?>)",
2249
+ "beginCaptures": {
2250
+ "1": {
2251
+ "name": "punctuation.definition.tag.begin.html"
2252
+ },
2253
+ "2": {
2254
+ "name": "entity.name.tag.html"
2255
+ }
2256
+ },
2257
+ "end": ">",
2258
+ "endCaptures": {
2259
+ "0": {
2260
+ "name": "punctuation.definition.tag.end.html"
2261
+ }
2262
+ },
2263
+ "name": "meta.tag.object.$2.start.html",
2264
+ "patterns": [
2265
+ {
2266
+ "include": "#attribute"
2267
+ }
2268
+ ]
2269
+ },
2270
+ {
2271
+ "begin": "(?i)(</)(audio|canvas|iframe|object|picture|video)(?=\\s|/?>)",
2272
+ "beginCaptures": {
2273
+ "1": {
2274
+ "name": "punctuation.definition.tag.begin.html"
2275
+ },
2276
+ "2": {
2277
+ "name": "entity.name.tag.html"
2278
+ }
2279
+ },
2280
+ "end": ">",
2281
+ "endCaptures": {
2282
+ "0": {
2283
+ "name": "punctuation.definition.tag.end.html"
2284
+ }
2285
+ },
2286
+ "name": "meta.tag.object.$2.end.html",
2287
+ "patterns": [
2288
+ {
2289
+ "include": "#attribute"
2290
+ }
2291
+ ]
2292
+ },
2293
+ {
2294
+ "begin": "(?i)(<)((basefont|isindex))(?=\\s|/?>)",
2295
+ "beginCaptures": {
2296
+ "1": {
2297
+ "name": "punctuation.definition.tag.begin.html"
2298
+ },
2299
+ "2": {
2300
+ "name": "entity.name.tag.html"
2301
+ },
2302
+ "3": {
2303
+ "name": "invalid.deprecated.html"
2304
+ }
2305
+ },
2306
+ "end": "/?>",
2307
+ "endCaptures": {
2308
+ "0": {
2309
+ "name": "punctuation.definition.tag.end.html"
2310
+ }
2311
+ },
2312
+ "name": "meta.tag.metadata.$2.void.html",
2313
+ "patterns": [
2314
+ {
2315
+ "include": "#attribute"
2316
+ }
2317
+ ]
2318
+ },
2319
+ {
2320
+ "begin": "(?i)(<)((center|frameset|noembed|noframes))(?=\\s|/?>)",
2321
+ "beginCaptures": {
2322
+ "1": {
2323
+ "name": "punctuation.definition.tag.begin.html"
2324
+ },
2325
+ "2": {
2326
+ "name": "entity.name.tag.html"
2327
+ },
2328
+ "3": {
2329
+ "name": "invalid.deprecated.html"
2330
+ }
2331
+ },
2332
+ "end": ">",
2333
+ "endCaptures": {
2334
+ "0": {
2335
+ "name": "punctuation.definition.tag.end.html"
2336
+ }
2337
+ },
2338
+ "name": "meta.tag.structure.$2.start.html",
2339
+ "patterns": [
2340
+ {
2341
+ "include": "#attribute"
2342
+ }
2343
+ ]
2344
+ },
2345
+ {
2346
+ "begin": "(?i)(</)((center|frameset|noembed|noframes))(?=\\s|/?>)",
2347
+ "beginCaptures": {
2348
+ "1": {
2349
+ "name": "punctuation.definition.tag.begin.html"
2350
+ },
2351
+ "2": {
2352
+ "name": "entity.name.tag.html"
2353
+ },
2354
+ "3": {
2355
+ "name": "invalid.deprecated.html"
2356
+ }
2357
+ },
2358
+ "end": ">",
2359
+ "endCaptures": {
2360
+ "0": {
2361
+ "name": "punctuation.definition.tag.end.html"
2362
+ }
2363
+ },
2364
+ "name": "meta.tag.structure.$2.end.html",
2365
+ "patterns": [
2366
+ {
2367
+ "include": "#attribute"
2368
+ }
2369
+ ]
2370
+ },
2371
+ {
2372
+ "begin": "(?i)(<)((acronym|big|blink|font|strike|tt|xmp))(?=\\s|/?>)",
2373
+ "beginCaptures": {
2374
+ "1": {
2375
+ "name": "punctuation.definition.tag.begin.html"
2376
+ },
2377
+ "2": {
2378
+ "name": "entity.name.tag.html"
2379
+ },
2380
+ "3": {
2381
+ "name": "invalid.deprecated.html"
2382
+ }
2383
+ },
2384
+ "end": ">",
2385
+ "endCaptures": {
2386
+ "0": {
2387
+ "name": "punctuation.definition.tag.end.html"
2388
+ }
2389
+ },
2390
+ "name": "meta.tag.inline.$2.start.html",
2391
+ "patterns": [
2392
+ {
2393
+ "include": "#attribute"
2394
+ }
2395
+ ]
2396
+ },
2397
+ {
2398
+ "begin": "(?i)(</)((acronym|big|blink|font|strike|tt|xmp))(?=\\s|/?>)",
2399
+ "beginCaptures": {
2400
+ "1": {
2401
+ "name": "punctuation.definition.tag.begin.html"
2402
+ },
2403
+ "2": {
2404
+ "name": "entity.name.tag.html"
2405
+ },
2406
+ "3": {
2407
+ "name": "invalid.deprecated.html"
2408
+ }
2409
+ },
2410
+ "end": ">",
2411
+ "endCaptures": {
2412
+ "0": {
2413
+ "name": "punctuation.definition.tag.end.html"
2414
+ }
2415
+ },
2416
+ "name": "meta.tag.inline.$2.end.html",
2417
+ "patterns": [
2418
+ {
2419
+ "include": "#attribute"
2420
+ }
2421
+ ]
2422
+ },
2423
+ {
2424
+ "begin": "(?i)(<)((frame))(?=\\s|/?>)",
2425
+ "beginCaptures": {
2426
+ "1": {
2427
+ "name": "punctuation.definition.tag.begin.html"
2428
+ },
2429
+ "2": {
2430
+ "name": "entity.name.tag.html"
2431
+ },
2432
+ "3": {
2433
+ "name": "invalid.deprecated.html"
2434
+ }
2435
+ },
2436
+ "end": "/?>",
2437
+ "endCaptures": {
2438
+ "0": {
2439
+ "name": "punctuation.definition.tag.end.html"
2440
+ }
2441
+ },
2442
+ "name": "meta.tag.object.$2.void.html",
2443
+ "patterns": [
2444
+ {
2445
+ "include": "#attribute"
2446
+ }
2447
+ ]
2448
+ },
2449
+ {
2450
+ "begin": "(?i)(<)((applet))(?=\\s|/?>)",
2451
+ "beginCaptures": {
2452
+ "1": {
2453
+ "name": "punctuation.definition.tag.begin.html"
2454
+ },
2455
+ "2": {
2456
+ "name": "entity.name.tag.html"
2457
+ },
2458
+ "3": {
2459
+ "name": "invalid.deprecated.html"
2460
+ }
2461
+ },
2462
+ "end": ">",
2463
+ "endCaptures": {
2464
+ "0": {
2465
+ "name": "punctuation.definition.tag.end.html"
2466
+ }
2467
+ },
2468
+ "name": "meta.tag.object.$2.start.html",
2469
+ "patterns": [
2470
+ {
2471
+ "include": "#attribute"
2472
+ }
2473
+ ]
2474
+ },
2475
+ {
2476
+ "begin": "(?i)(</)((applet))(?=\\s|/?>)",
2477
+ "beginCaptures": {
2478
+ "1": {
2479
+ "name": "punctuation.definition.tag.begin.html"
2480
+ },
2481
+ "2": {
2482
+ "name": "entity.name.tag.html"
2483
+ },
2484
+ "3": {
2485
+ "name": "invalid.deprecated.html"
2486
+ }
2487
+ },
2488
+ "end": ">",
2489
+ "endCaptures": {
2490
+ "0": {
2491
+ "name": "punctuation.definition.tag.end.html"
2492
+ }
2493
+ },
2494
+ "name": "meta.tag.object.$2.end.html",
2495
+ "patterns": [
2496
+ {
2497
+ "include": "#attribute"
2498
+ }
2499
+ ]
2500
+ },
2501
+ {
2502
+ "begin": "(?i)(<)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\s|/?>)",
2503
+ "beginCaptures": {
2504
+ "1": {
2505
+ "name": "punctuation.definition.tag.begin.html"
2506
+ },
2507
+ "2": {
2508
+ "name": "entity.name.tag.html"
2509
+ },
2510
+ "3": {
2511
+ "name": "invalid.illegal.no-longer-supported.html"
2512
+ }
2513
+ },
2514
+ "end": ">",
2515
+ "endCaptures": {
2516
+ "0": {
2517
+ "name": "punctuation.definition.tag.end.html"
2518
+ }
2519
+ },
2520
+ "name": "meta.tag.other.$2.start.html",
2521
+ "patterns": [
2522
+ {
2523
+ "include": "#attribute"
2524
+ }
2525
+ ]
2526
+ },
2527
+ {
2528
+ "begin": "(?i)(</)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\s|/?>)",
2529
+ "beginCaptures": {
2530
+ "1": {
2531
+ "name": "punctuation.definition.tag.begin.html"
2532
+ },
2533
+ "2": {
2534
+ "name": "entity.name.tag.html"
2535
+ },
2536
+ "3": {
2537
+ "name": "invalid.illegal.no-longer-supported.html"
2538
+ }
2539
+ },
2540
+ "end": ">",
2541
+ "endCaptures": {
2542
+ "0": {
2543
+ "name": "punctuation.definition.tag.end.html"
2544
+ }
2545
+ },
2546
+ "name": "meta.tag.other.$2.end.html",
2547
+ "patterns": [
2548
+ {
2549
+ "include": "#attribute"
2550
+ }
2551
+ ]
2552
+ },
2553
+ {
2554
+ "include": "#math"
2555
+ },
2556
+ {
2557
+ "include": "#svg"
2558
+ },
2559
+ {
2560
+ "begin": "(<)([A-Za-z][.0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌‍‿⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-\\x{EFFFF}]*-[-.0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌‍‿⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-\\x{EFFFF}]*)(?=\\s|/?>)",
2561
+ "beginCaptures": {
2562
+ "1": {
2563
+ "name": "punctuation.definition.tag.begin.html"
2564
+ },
2565
+ "2": {
2566
+ "name": "entity.name.tag.html"
2567
+ }
2568
+ },
2569
+ "end": "/?>",
2570
+ "endCaptures": {
2571
+ "0": {
2572
+ "name": "punctuation.definition.tag.end.html"
2573
+ }
2574
+ },
2575
+ "name": "meta.tag.custom.start.html",
2576
+ "patterns": [
2577
+ {
2578
+ "include": "#attribute"
2579
+ }
2580
+ ]
2581
+ },
2582
+ {
2583
+ "begin": "(</)([A-Za-z][.0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌‍‿⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-\\x{EFFFF}]*-[-.0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌‍‿⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-\\x{EFFFF}]*)(?=\\s|/?>)",
2584
+ "beginCaptures": {
2585
+ "1": {
2586
+ "name": "punctuation.definition.tag.begin.html"
2587
+ },
2588
+ "2": {
2589
+ "name": "entity.name.tag.html"
2590
+ }
2591
+ },
2592
+ "end": ">",
2593
+ "endCaptures": {
2594
+ "0": {
2595
+ "name": "punctuation.definition.tag.end.html"
2596
+ }
2597
+ },
2598
+ "name": "meta.tag.custom.end.html",
2599
+ "patterns": [
2600
+ {
2601
+ "include": "#attribute"
2602
+ }
2603
+ ]
2604
+ }
2605
+ ]
2606
+ },
2607
+ "xml-processing": {
2608
+ "begin": "(<\\?)(xml)",
2609
+ "captures": {
2610
+ "1": {
2611
+ "name": "punctuation.definition.tag.html"
2612
+ },
2613
+ "2": {
2614
+ "name": "entity.name.tag.html"
2615
+ }
2616
+ },
2617
+ "end": "(\\?>)",
2618
+ "name": "meta.tag.metadata.processing.xml.html",
2619
+ "patterns": [
2620
+ {
2621
+ "include": "#attribute"
2622
+ }
2623
+ ]
2624
+ }
2625
+ },
2626
+ "scopeName": "text.html.basic"
2627
+ }