PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.11.0
Code Block Pro – Beautiful Syntax Highlighting v1.11.0
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
code-block-pro / build / shiki / languages / astro.tmLanguage.json

astro.tmLanguage.json in Code Block Pro – Beautiful Syntax Highlighting 1.11.0, at build/shiki/languages/astro.tmLanguage.json

902 lines 24.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
3 "fileTypes": ["astro"],
4 "foldingStartMarker": "(?x)\n(<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)\\b.*?>\n|<!--(?!.*--\\s*>)\n|^<!--\\ \\#tminclude\\ (?>.*?-->)$\n|<\\?(?:php)?.*\\b(if|for(each)?|while)\\b.+:\n|\\{\\{?(if|foreach|capture|literal|foreach|php|section|strip)\n|\\{\\s*($|\\?>\\s*$|//|/\\*(.*\\*/\\s*$|(?!.*?\\*/)))\n)",
5 "foldingStopMarker": "(?x)\n(</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)>\n|^(?!.*?<!--).*?--\\s*>\n|^<!--\\ end\\ tminclude\\ -->$\n|<\\?(?:php)?.*\\bend(if|for(each)?|while)\\b\n|\\{\\{?/(if|foreach|capture|literal|foreach|php|section|strip)\n|^[^{]*\\}\n)",
6 "keyEquivalent": "^~H",
7 "name": "astro",
8 "scopeName": "source.astro",
9 "patterns": [
10 {
11 "include": "#astro:expressions"
12 },
13 {
14 "include": "#html:comment"
15 },
16 {
17 "include": "#html:comment:bogus"
18 },
19 {
20 "include": "#html:doctype"
21 },
22 {
23 "include": "#astro:fragment"
24 },
25 {
26 "include": "#astro:lang-scripts"
27 },
28 {
29 "include": "#astro:lang-styles"
30 },
31 {
32 "include": "#astro:component"
33 },
34 {
35 "include": "#html:element"
36 },
37 {
38 "include": "#html:entity"
39 },
40 {
41 "include": "#html:entity:bogus"
42 },
43 {
44 "include": "#frontmatter"
45 }
46 ],
47 "repository": {
48 "astro:attribute": {
49 "patterns": [
50 {
51 "include": "#html:events"
52 },
53 {
54 "include": "#html:attribute"
55 },
56 {
57 "include": "#string-double-quoted"
58 },
59 {
60 "include": "#string-single-quoted"
61 },
62 {
63 "include": "#string-template-literal"
64 },
65 {
66 "include": "#astro:expressions"
67 }
68 ]
69 },
70 "astro:component": {
71 "patterns": [
72 {
73 "name": "meta.tag.component.astro astro.component.raw",
74 "begin": "(<)([$A-Z_][^/?!\\s<>]*|[^/?!\\s<>.]+\\.[^/?!\\s<>]+)(.+is:raw.*?)(>)",
75 "end": "(</)([$A-Z_][^/?!\\s<>]*|[^/?!\\s<>.]+\\.[^/?!\\s<>]+)(?=\\s|/?>)(>)",
76 "beginCaptures": {
77 "1": {
78 "name": "punctuation.definition.tag.begin.astro"
79 },
80 "2": {
81 "name": "entity.name.tag.astro support.class.component.astro"
82 },
83 "3": {
84 "patterns": [
85 {
86 "include": "#astro:attribute"
87 }
88 ]
89 },
90 "4": {
91 "name": "punctuation.definition.tag.end.astro"
92 }
93 },
94 "endCaptures": {
95 "1": {
96 "name": "punctuation.definition.tag.begin.astro"
97 },
98 "2": {
99 "name": "entity.name.tag.astro support.class.component.astro"
100 },
101 "3": {
102 "name": "punctuation.definition.tag.end.astro"
103 }
104 },
105 "contentName": "source.unknown"
106 },
107 {
108 "name": "meta.tag.component.astro",
109 "begin": "(</?)([$A-Z_][^/?!\\s<>]*|[^/?!\\s<>.]+\\.[^/?!\\s<>]+)\\b",
110 "beginCaptures": {
111 "1": {
112 "name": "punctuation.definition.tag.begin.astro"
113 },
114 "2": {
115 "name": "entity.name.tag.astro support.class.component.astro"
116 }
117 },
118 "end": "(/?>)",
119 "endCaptures": {
120 "1": {
121 "name": "punctuation.definition.tag.end.astro"
122 }
123 },
124 "patterns": [
125 {
126 "include": "#astro:attribute"
127 }
128 ]
129 }
130 ]
131 },
132 "astro:fragment": {
133 "name": "meta.tag.component.astro",
134 "match": "(</?)(Fragment)?(\\s*>)",
135 "captures": {
136 "1": {
137 "name": "punctuation.definition.tag.astro"
138 },
139 "2": {
140 "name": "entity.name.tag.astro support.class.fragment.astro"
141 },
142 "3": {
143 "name": "punctuation.definition.tag.astro"
144 }
145 }
146 },
147 "astro:lang-scripts": {
148 "begin": "(<)(script)",
149 "end": "(</)(script)\\s*(>)|(/>)",
150 "beginCaptures": {
151 "1": {
152 "name": "punctuation.definition.tag.begin.html"
153 },
154 "2": {
155 "name": "entity.name.tag.html"
156 }
157 },
158 "endCaptures": {
159 "1": {
160 "name": "punctuation.definition.tag.begin.html"
161 },
162 "2": {
163 "name": "entity.name.tag.html"
164 },
165 "3": {
166 "name": "punctuation.definition.tag.end.html"
167 },
168 "4": {
169 "name": "punctuation.definition.tag.end.html"
170 }
171 },
172 "patterns": [
173 {
174 "comment": "Treat script tag with application/ld+json as JSON. This needs to be higher than is:raw since it's a very possible situation to have is:raw on a JSON script tag",
175 "begin": "\\G(?=\\s*[^>]*?type\\s*=\\s*(['\"]|)(?i:application/ld\\+json)\\1)",
176 "end": "(?=</|/>)",
177 "patterns": [
178 {
179 "begin": "(?<=>)(?!</)",
180 "end": "(?=</)",
181 "contentName": "source.json",
182 "patterns": [
183 {
184 "include": "source.json"
185 }
186 ]
187 },
188 {
189 "include": "#html:tag-attributes"
190 }
191 ]
192 },
193 {
194 "comment": "Treat script tag with JS-compatible types as JS",
195 "begin": "\\G(?=\\s*[^>]*?type\\s*=\\s*(['\"]|)(?i:module|(?:text/javascript|text/partytown|application/node|application/javascript))\\1)",
196 "end": "(?=</|/>)",
197 "patterns": [
198 {
199 "begin": "(?<=>)(?!</)",
200 "end": "(?=</)",
201 "contentName": "source.js",
202 "patterns": [
203 {
204 "include": "source.js"
205 }
206 ]
207 },
208 {
209 "include": "#html:tag-attributes"
210 }
211 ]
212 },
213 {
214 "comment": "Treat anything with an unknown type as unknown",
215 "begin": "\\G(?=\\s*[^>]*?type\\s*=\\s*(['\"]|)\\1)",
216 "end": "(?=</|/>)",
217 "patterns": [
218 {
219 "begin": "(?<=>)(?!</)",
220 "end": "(?=</)",
221 "name": "source.unknown"
222 },
223 {
224 "include": "#html:tag-attributes"
225 }
226 ]
227 },
228 {
229 "begin": "\\G(?=\\s*[^>]*?lang\\s*=\\s*(['\"]|)(?i:jsx?|javascript)\\1)",
230 "end": "(?=</|/>)",
231 "patterns": [
232 {
233 "begin": "(?<=>)(?!</)",
234 "end": "(?=</)",
235 "contentName": "source.js",
236 "patterns": [
237 {
238 "include": "source.js"
239 }
240 ]
241 },
242 {
243 "include": "#html:tag-attributes"
244 }
245 ]
246 },
247 {
248 "begin": "\\G(?=\\s*[^>]*?lang\\s*=\\s*(['\"]|)(?i:ts|typescript)\\1)",
249 "end": "(?=</|/>)",
250 "patterns": [
251 {
252 "begin": "(?<=>)(?!</)",
253 "end": "(?=</)",
254 "contentName": "source.ts",
255 "patterns": [
256 {
257 "include": "source.ts"
258 }
259 ]
260 },
261 {
262 "include": "#html:tag-attributes"
263 }
264 ]
265 },
266 {
267 "begin": "\\G(?=\\s*[^>]*?lang\\s*=\\s*(['\"]|)(?i:tsx)\\1)",
268 "end": "(?=</|/>)",
269 "patterns": [
270 {
271 "begin": "(?<=>)(?!</)",
272 "end": "(?=</)",
273 "contentName": "source.tsx",
274 "patterns": [
275 {
276 "include": "source.tsx"
277 }
278 ]
279 },
280 {
281 "include": "#html:tag-attributes"
282 }
283 ]
284 },
285 {
286 "begin": "(?<=>)(?!</)",
287 "end": "(?=</)",
288 "contentName": "source.js",
289 "patterns": [
290 {
291 "include": "source.js"
292 }
293 ]
294 },
295 {
296 "include": "#html:tag-attributes"
297 }
298 ]
299 },
300 "astro:lang-styles": {
301 "begin": "(<)(style)",
302 "end": "(</)(style)\\s*(>)|(/>)",
303 "beginCaptures": {
304 "1": {
305 "name": "punctuation.definition.tag.begin.html"
306 },
307 "2": {
308 "name": "entity.name.tag.html"
309 }
310 },
311 "endCaptures": {
312 "1": {
313 "name": "punctuation.definition.tag.begin.html"
314 },
315 "2": {
316 "name": "entity.name.tag.html"
317 },
318 "3": {
319 "name": "punctuation.definition.tag.end.html"
320 },
321 "4": {
322 "name": "punctuation.definition.tag.end.html"
323 }
324 },
325 "patterns": [
326 {
327 "begin": "\\G(?=\\s*[^>]*?lang\\s*=\\s*(['\"]|)(?i:css)\\1)",
328 "end": "(?=</|/>)",
329 "patterns": [
330 {
331 "begin": "(?<=>)(?!</)",
332 "end": "(?=</)",
333 "contentName": "source.css",
334 "patterns": [
335 {
336 "include": "source.css"
337 }
338 ]
339 },
340 {
341 "include": "#html:tag-attributes"
342 }
343 ]
344 },
345 {
346 "begin": "\\G(?=\\s*[^>]*?lang\\s*=\\s*(['\"]|)(?i:less)\\1)",
347 "end": "(?=</|/>)",
348 "patterns": [
349 {
350 "begin": "(?<=>)(?!</)",
351 "end": "(?=</)",
352 "contentName": "source.css.less",
353 "patterns": [
354 {
355 "include": "source.css.less"
356 }
357 ]
358 },
359 {
360 "include": "#html:tag-attributes"
361 }
362 ]
363 },
364 {
365 "begin": "\\G(?=\\s*[^>]*?lang\\s*=\\s*(['\"]|)(?i:sass)\\1)",
366 "end": "(?=</|/>)",
367 "patterns": [
368 {
369 "begin": "(?<=>)(?!</)",
370 "end": "(?=</)",
371 "contentName": "source.sass",
372 "patterns": [
373 {
374 "include": "source.sass"
375 }
376 ]
377 },
378 {
379 "include": "#html:tag-attributes"
380 }
381 ]
382 },
383 {
384 "begin": "\\G(?=\\s*[^>]*?lang\\s*=\\s*(['\"]|)(?i:scss)\\1)",
385 "end": "(?=</|/>)",
386 "patterns": [
387 {
388 "begin": "(?<=>)(?!</)",
389 "end": "(?=</)",
390 "contentName": "source.css.scss",
391 "patterns": [
392 {
393 "include": "source.css.scss"
394 }
395 ]
396 },
397 {
398 "include": "#html:tag-attributes"
399 }
400 ]
401 },
402 {
403 "begin": "\\G(?=\\s*[^>]*?lang\\s*=\\s*(['\"]|)(?i:styl(?:us)?)\\1)",
404 "end": "(?=</|/>)",
405 "patterns": [
406 {
407 "begin": "(?<=>)(?!</)",
408 "end": "(?=</)",
409 "contentName": "source.stylus",
410 "patterns": [
411 {
412 "include": "source.stylus"
413 }
414 ]
415 },
416 {
417 "include": "#html:tag-attributes"
418 }
419 ]
420 },
421 {
422 "begin": "(?<=>)(?!</)",
423 "end": "(?=</)",
424 "contentName": "source.css",
425 "patterns": [
426 {
427 "include": "source.css"
428 }
429 ]
430 },
431 {
432 "include": "#html:tag-attributes"
433 }
434 ]
435 },
436 "html:events": {
437 "name": "meta.attribute.event-handler.$1.html",
438 "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(nline|ffline)|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(data|metadata)))?|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:-])",
439 "beginCaptures": {
440 "0": {
441 "name": "entity.other.attribute-name.html"
442 }
443 },
444 "end": "(?=\\s*+[^=\\s])",
445 "patterns": [
446 {
447 "begin": "=",
448 "beginCaptures": {
449 "0": {
450 "name": "punctuation.separator.key-value.html"
451 }
452 },
453 "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)",
454 "patterns": [
455 {
456 "begin": "(?=[^\\s=<>`/]|/(?!>))",
457 "end": "(?!\\G)",
458 "name": "meta.embedded.line.js",
459 "patterns": [
460 {
461 "captures": {
462 "0": {
463 "name": "source.js"
464 },
465 "1": {
466 "patterns": [
467 {
468 "include": "source.js"
469 }
470 ]
471 }
472 },
473 "match": "(([^\\s\"'=<>`/]|/(?!>))+)",
474 "name": "string.unquoted.html"
475 },
476 {
477 "begin": "\"",
478 "beginCaptures": {
479 "0": {
480 "name": "punctuation.definition.string.begin.html"
481 }
482 },
483 "contentName": "source.js",
484 "end": "(\")",
485 "endCaptures": {
486 "0": {
487 "name": "punctuation.definition.string.end.html"
488 }
489 },
490 "name": "string.quoted.double.html",
491 "patterns": [
492 {
493 "captures": {
494 "0": {
495 "patterns": [
496 {
497 "include": "source.js"
498 }
499 ]
500 }
501 },
502 "match": "([^\\n\"/]|/(?![/*]))+"
503 },
504 {
505 "begin": "//",
506 "beginCaptures": {
507 "0": {
508 "name": "punctuation.definition.comment.js"
509 }
510 },
511 "end": "(?=\")|\\n",
512 "name": "comment.line.double-slash.js"
513 },
514 {
515 "begin": "/\\*",
516 "beginCaptures": {
517 "0": {
518 "name": "punctuation.definition.comment.begin.js"
519 }
520 },
521 "end": "(?=\")|\\*/",
522 "endCaptures": {
523 "0": {
524 "name": "punctuation.definition.comment.end.js"
525 }
526 },
527 "name": "comment.block.js"
528 }
529 ]
530 },
531 {
532 "begin": "'",
533 "beginCaptures": {
534 "0": {
535 "name": "punctuation.definition.string.begin.html"
536 }
537 },
538 "contentName": "source.js",
539 "end": "(')",
540 "endCaptures": {
541 "0": {
542 "name": "punctuation.definition.string.end.html"
543 },
544 "1": {
545 "name": "source.js-ignored-vscode"
546 }
547 },
548 "name": "string.quoted.single.html",
549 "patterns": [
550 {
551 "captures": {
552 "0": {
553 "patterns": [
554 {
555 "include": "source.js"
556 }
557 ]
558 }
559 },
560 "match": "([^\\n'/]|/(?![/*]))+"
561 },
562 {
563 "begin": "//",
564 "beginCaptures": {
565 "0": {
566 "name": "punctuation.definition.comment.js"
567 }
568 },
569 "end": "(?=')|\\n",
570 "name": "comment.line.double-slash.js"
571 },
572 {
573 "begin": "/\\*",
574 "beginCaptures": {
575 "0": {
576 "name": "punctuation.definition.comment.begin.js"
577 }
578 },
579 "end": "(?=')|\\*/",
580 "endCaptures": {
581 "0": {
582 "name": "punctuation.definition.comment.end.js"
583 }
584 },
585 "name": "comment.block.js"
586 }
587 ]
588 }
589 ]
590 },
591 {
592 "match": "=",
593 "name": "invalid.illegal.unexpected-equals-sign.html"
594 }
595 ]
596 }
597 ]
598 },
599 "html:attribute": {
600 "name": "meta.attribute.$1.html",
601 "match": "([a-zA-Z0-9\\-:@_.]+)(=?)",
602 "captures": {
603 "1": {
604 "name": "entity.other.attribute-name.html"
605 },
606 "2": {
607 "name": "punctuation.separator.key-value.html"
608 }
609 }
610 },
611 "html:tag-attributes": {
612 "begin": "\\G",
613 "end": "(?=/>)|>",
614 "endCaptures": {
615 "0": {
616 "name": "punctuation.definition.tag.end.html"
617 }
618 },
619 "patterns": [
620 {
621 "include": "#astro:attribute"
622 }
623 ]
624 },
625 "html:comment": {
626 "name": "comment.block.html",
627 "begin": "<!--",
628 "beginCaptures": {
629 "0": {
630 "name": "punctuation.definition.comment.html punctuation.definition.comment.begin.html"
631 }
632 },
633 "end": "--!?>",
634 "endCaptures": {
635 "0": {
636 "name": "punctuation.definition.comment.html punctuation.definition.comment.end.html"
637 }
638 }
639 },
640 "html:comment:bogus": {
641 "name": "comment.block.html",
642 "begin": "<\\?",
643 "captures": {
644 "0": {
645 "name": "punctuation.definition.comment.html"
646 }
647 },
648 "beginCaptures": {
649 "0": {
650 "name": "punctuation.definition.comment.html punctuation.definition.comment.begin.html"
651 }
652 },
653 "end": ">",
654 "endCaptures": {
655 "0": {
656 "name": "punctuation.definition.comment.html punctuation.definition.comment.end.html"
657 }
658 }
659 },
660 "html:doctype": {
661 "name": "meta.tag.metadata.doctype.html",
662 "begin": "(<!)([Dd][Oo][Cc][Tt][Yy][Pp][Ee])",
663 "beginCaptures": {
664 "1": {
665 "name": "punctuation.definition.tag.html punctuation.definition.tag.begin.html"
666 },
667 "2": {
668 "name": "entity.name.tag.html"
669 }
670 },
671 "end": ">",
672 "endCaptures": {
673 "0": {
674 "name": "punctuation.definition.tag.html punctuation.definition.tag.end.html"
675 }
676 },
677 "patterns": [
678 {
679 "begin": "\"",
680 "end": "\"",
681 "name": "string.quoted.double.html"
682 },
683 {
684 "match": "[^\\s>]+",
685 "name": "entity.other.attribute-name.html"
686 }
687 ]
688 },
689 "html:element": {
690 "patterns": [
691 {
692 "name": "astro.element.raw",
693 "begin": "(<)([^/?!\\s<>]+)(.+is:raw.*?)(>)",
694 "end": "(</)([^/?!\\s<>]+)(?=\\s|/?>)(>)",
695 "beginCaptures": {
696 "1": {
697 "name": "punctuation.definition.tag.begin.html"
698 },
699 "2": {
700 "name": "entity.name.tag.html"
701 },
702 "3": {
703 "patterns": [
704 {
705 "include": "#astro:attribute"
706 }
707 ]
708 },
709 "4": {
710 "name": "punctuation.definition.tag.end.html"
711 }
712 },
713 "endCaptures": {
714 "1": {
715 "name": "punctuation.definition.tag.begin.html"
716 },
717 "2": {
718 "name": "entity.name.tag.html"
719 },
720 "3": {
721 "name": "punctuation.definition.tag.end.html"
722 }
723 },
724 "contentName": "source.unknown"
725 },
726 {
727 "name": "meta.tag.any.$2.start.html",
728 "begin": "(<)([^/?!\\s<>]+)(?=\\s|/?>)",
729 "beginCaptures": {
730 "1": {
731 "name": "punctuation.definition.tag.begin.html"
732 },
733 "2": {
734 "name": "entity.name.tag.html"
735 }
736 },
737 "end": "/?>",
738 "endCaptures": {
739 "0": {
740 "name": "punctuation.definition.tag.end.html"
741 }
742 },
743 "patterns": [
744 {
745 "include": "#astro:attribute"
746 }
747 ]
748 },
749 {
750 "name": "meta.tag.any.$2.end.html",
751 "begin": "(</)([^/?!\\s<>]+)(?=\\s|/?>)",
752 "beginCaptures": {
753 "1": {
754 "name": "punctuation.definition.tag.begin.html"
755 },
756 "2": {
757 "name": "entity.name.tag.html"
758 }
759 },
760 "end": "/?>",
761 "endCaptures": {
762 "0": {
763 "name": "punctuation.definition.tag.end.html"
764 }
765 },
766 "patterns": [
767 {
768 "include": "#astro:attribute"
769 }
770 ]
771 }
772 ]
773 },
774 "html:entity": {
775 "name": "constant.character.entity.html",
776 "match": "(&)([0-9A-Za-z]+|#x[0-9A-Fa-f]+|x[0-9]+)(;)",
777 "captures": {
778 "1": {
779 "name": "punctuation.definition.entity.html"
780 },
781 "3": {
782 "name": "punctuation.definition.entity.html"
783 }
784 }
785 },
786 "html:entity:bogus": {
787 "name": "constant.character.entity.html",
788 "match": "(&)([0-9A-Za-z]+|#x[0-9A-Fa-f]+|x[0-9]+)",
789 "captures": {
790 "1": {
791 "name": "invalid.illegal.bad-ampersand.html"
792 },
793 "3": {
794 "name": "punctuation.definition.entity.html"
795 }
796 }
797 },
798 "astro:expressions": {
799 "patterns": [
800 {
801 "begin": "\\{",
802 "beginCaptures": {
803 "0": {
804 "name": "punctuation.section.embedded.begin.tsx"
805 }
806 },
807 "end": "\\}",
808 "endCaptures": {
809 "0": {
810 "name": "punctuation.section.embedded.end.tsx"
811 }
812 },
813 "name": "expression.embedded.astro",
814 "contentName": "source.tsx",
815 "patterns": [
816 {
817 "include": "source.tsx"
818 }
819 ]
820 }
821 ]
822 },
823 "frontmatter": {
824 "comment": "The frontmatter is treated as comments in order to get the \"faded\" look",
825 "begin": "\\A(-{3})\\s*$",
826 "beginCaptures": {
827 "1": {
828 "name": "comment"
829 }
830 },
831 "contentName": "source.ts",
832 "patterns": [
833 {
834 "include": "source.ts"
835 }
836 ],
837 "end": "(^|\\G)(-{3})|\\.{3}\\s*$",
838 "endCaptures": {
839 "2": {
840 "name": "comment"
841 }
842 }
843 },
844 "string-double-quoted": {
845 "begin": "\"",
846 "beginCaptures": {
847 "0": {
848 "name": "punctuation.definition.string.begin.html"
849 }
850 },
851 "end": "\"",
852 "endCaptures": {
853 "0": {
854 "name": "punctuation.definition.string.end.html"
855 }
856 },
857 "name": "string.quoted.double.html",
858 "patterns": [
859 {
860 "include": "#html:entity"
861 },
862 {
863 "include": "#html:entity:bogus"
864 }
865 ]
866 },
867 "string-single-quoted": {
868 "begin": "'",
869 "beginCaptures": {
870 "0": {
871 "name": "punctuation.definition.string.begin.html"
872 }
873 },
874 "end": "'",
875 "endCaptures": {
876 "0": {
877 "name": "punctuation.definition.string.end.html"
878 }
879 },
880 "name": "string.quoted.single.html",
881 "patterns": [
882 {
883 "include": "#html:entity"
884 },
885 {
886 "include": "#html:entity:bogus"
887 }
888 ]
889 },
890 "string-template-literal": {
891 "begin": "`",
892 "end": "`",
893 "name": "string.template.html",
894 "patterns": [
895 {
896 "include": "source.tsx#template-substitution-element"
897 }
898 ]
899 }
900 }
901 }
902