PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.27.2
Code Block Pro – Beautiful Syntax Highlighting v1.27.2
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 / svelte.tmLanguage.json

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

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