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

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

1,162 lines 28.2 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": "html",
402 "name": "keyword.other.svelte"
403 },
404 {
405 "match": "debug",
406 "name": "keyword.other.debugger.svelte"
407 },
408 {
409 "match": "const",
410 "name": "storage.type.svelte"
411 }
412 ]
413 }
414 }
415 },
416 "special-tags-modes": {
417 "patterns": [
418 {
419 "begin": "(?<=(if|key|then|catch|html).*?)\\G",
420 "end": "(?=})",
421 "name": "meta.embedded.expression.svelte source.ts",
422 "patterns": [
423 {
424 "include": "source.ts"
425 }
426 ]
427 },
428 {
429 "begin": "(?<=const.*?)\\G",
430 "end": "(?=})",
431 "patterns": [
432 {
433 "include": "#destructuring-const"
434 },
435 {
436 "begin": "\\G\\s*([_$[:alpha:]][_$[:alnum:]]+)\\s*",
437 "end": "(?=\\=)",
438 "beginCaptures": {
439 "1": {
440 "name": "variable.other.constant.svelte"
441 }
442 }
443 },
444 {
445 "begin": "(?=\\=)",
446 "name": "meta.embedded.expression.svelte source.ts",
447 "end": "(?=})",
448 "patterns": [
449 {
450 "include": "source.ts"
451 }
452 ]
453 }
454 ]
455 },
456 {
457 "begin": "(?<=each.*?)\\G",
458 "end": "(?=})",
459 "patterns": [
460 {
461 "begin": "\\G\\s*?(?=\\S)",
462 "end": "(?=(?:^\\s*|\\s+)(as))",
463 "contentName": "meta.embedded.expression.svelte source.ts",
464 "patterns": [
465 {
466 "include": "source.ts"
467 }
468 ]
469 },
470 {
471 "begin": "(as)",
472 "beginCaptures": {
473 "1": {
474 "name": "keyword.control.as.svelte"
475 }
476 },
477 "end": "(?=})",
478 "patterns": [
479 {
480 "include": "#destructuring"
481 },
482 {
483 "begin": "\\(",
484 "end": "\\)|(?=})",
485 "captures": {
486 "0": {
487 "name": "meta.brace.round.svelte"
488 }
489 },
490 "contentName": "meta.embedded.expression.svelte source.ts",
491 "patterns": [
492 {
493 "include": "source.ts"
494 }
495 ]
496 },
497 {
498 "match": "(\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*)",
499 "captures": {
500 "1": {
501 "name": "meta.embedded.expression.svelte source.ts",
502 "patterns": [
503 {
504 "include": "source.ts"
505 }
506 ]
507 }
508 }
509 },
510 {
511 "match": ",",
512 "name": "punctuation.separator.svelte"
513 }
514 ]
515 }
516 ]
517 },
518 {
519 "begin": "(?<=await.*?)\\G",
520 "end": "(?=})",
521 "patterns": [
522 {
523 "begin": "\\G\\s*?(?=\\S)",
524 "end": "\\s+(then)|(?=})",
525 "endCaptures": {
526 "1": {
527 "name": "keyword.control.flow.svelte"
528 }
529 },
530 "contentName": "meta.embedded.expression.svelte source.ts",
531 "patterns": [
532 {
533 "include": "source.ts"
534 }
535 ]
536 },
537 {
538 "begin": "(?<=then\\b)",
539 "end": "(?=})",
540 "contentName": "meta.embedded.expression.svelte source.ts",
541 "patterns": [
542 {
543 "include": "source.ts"
544 }
545 ]
546 }
547 ]
548 },
549 {
550 "begin": "(?<=debug.*?)\\G",
551 "end": "(?=})",
552 "patterns": [
553 {
554 "match": "[_$[:alpha:]][_$[:alnum:]]*",
555 "captures": {
556 "0": {
557 "name": "meta.embedded.expression.svelte source.ts",
558 "patterns": [
559 {
560 "include": "source.ts"
561 }
562 ]
563 }
564 }
565 },
566 {
567 "match": ",",
568 "name": "punctuation.separator.svelte"
569 }
570 ]
571 }
572 ]
573 },
574 "special-tags-void": {
575 "begin": "({)\\s*((?:[@:])(else\\s+if|[a-z]*))",
576 "beginCaptures": {
577 "1": {
578 "name": "punctuation.definition.block.begin.svelte"
579 },
580 "2": {
581 "patterns": [
582 {
583 "include": "#special-tags-keywords"
584 }
585 ]
586 }
587 },
588 "end": "\\}",
589 "endCaptures": {
590 "0": {
591 "name": "punctuation.definition.block.end.svelte"
592 }
593 },
594 "name": "meta.special.$3.svelte",
595 "patterns": [
596 {
597 "include": "#special-tags-modes"
598 }
599 ]
600 },
601 "special-tags-block-begin": {
602 "begin": "({)\\s*(#([a-z]*))",
603 "end": "(})",
604 "name": "meta.special.$3.svelte meta.special.start.svelte",
605 "beginCaptures": {
606 "1": {
607 "name": "punctuation.definition.block.begin.svelte"
608 },
609 "2": {
610 "patterns": [
611 {
612 "include": "#special-tags-keywords"
613 }
614 ]
615 }
616 },
617 "endCaptures": {
618 "0": {
619 "name": "punctuation.definition.block.end.svelte"
620 }
621 },
622 "patterns": [
623 {
624 "include": "#special-tags-modes"
625 }
626 ]
627 },
628 "special-tags-block-end": {
629 "begin": "({)\\s*(/([a-z]*))",
630 "end": "(})",
631 "name": "meta.special.$3.svelte meta.special.end.svelte",
632 "beginCaptures": {
633 "1": {
634 "name": "punctuation.definition.block.begin.svelte"
635 },
636 "2": {
637 "patterns": [
638 {
639 "include": "#special-tags-keywords"
640 }
641 ]
642 }
643 },
644 "endCaptures": {
645 "1": {
646 "name": "punctuation.definition.block.end.svelte"
647 }
648 }
649 },
650 "attributes": {
651 "patterns": [
652 {
653 "include": "#attributes-directives"
654 },
655 {
656 "include": "#attributes-keyvalue"
657 },
658 {
659 "include": "#attributes-interpolated"
660 }
661 ]
662 },
663 "attributes-interpolated": {
664 "begin": "(?<!:|=)\\s*({)",
665 "end": "(\\})",
666 "captures": {
667 "1": {
668 "name": "entity.other.attribute-name.svelte"
669 }
670 },
671 "contentName": "meta.embedded.expression.svelte source.ts",
672 "patterns": [
673 {
674 "include": "source.ts"
675 }
676 ]
677 },
678 "attributes-keyvalue": {
679 "begin": "((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*)",
680 "beginCaptures": {
681 "0": {
682 "patterns": [
683 {
684 "match": "--.*",
685 "name": "support.type.property-name.svelte"
686 },
687 {
688 "match": ".*",
689 "name": "entity.other.attribute-name.svelte"
690 }
691 ]
692 }
693 },
694 "end": "(?=\\s*+[^=\\s])",
695 "name": "meta.attribute.$1.svelte",
696 "patterns": [
697 {
698 "begin": "=",
699 "beginCaptures": {
700 "0": {
701 "name": "punctuation.separator.key-value.svelte"
702 }
703 },
704 "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)",
705 "patterns": [
706 {
707 "include": "#attributes-value"
708 }
709 ]
710 }
711 ]
712 },
713 "attributes-value": {
714 "patterns": [
715 {
716 "include": "#interpolation"
717 },
718 {
719 "match": "(?:(['\"])([0-9._]+[\\w%]{,4})(\\1))|(?:([0-9._]+[\\w%]{,4})(?=\\s|/?>))",
720 "captures": {
721 "1": {
722 "name": "punctuation.definition.string.begin.svelte"
723 },
724 "2": {
725 "name": "constant.numeric.decimal.svelte"
726 },
727 "3": {
728 "name": "punctuation.definition.string.end.svelte"
729 },
730 "4": {
731 "name": "constant.numeric.decimal.svelte"
732 }
733 }
734 },
735 {
736 "match": "([^\\s\"'=<>`/]|/(?!>))+",
737 "name": "string.unquoted.svelte",
738 "patterns": [
739 {
740 "include": "#interpolation"
741 }
742 ]
743 },
744 {
745 "begin": "(['\"])",
746 "end": "\\1",
747 "beginCaptures": {
748 "0": {
749 "name": "punctuation.definition.string.begin.svelte"
750 }
751 },
752 "endCaptures": {
753 "0": {
754 "name": "punctuation.definition.string.end.svelte"
755 }
756 },
757 "name": "string.quoted.svelte",
758 "patterns": [
759 {
760 "include": "#interpolation"
761 }
762 ]
763 }
764 ]
765 },
766 "attributes-directives-keywords": {
767 "patterns": [
768 {
769 "match": "on|use|bind",
770 "name": "keyword.control.svelte"
771 },
772 {
773 "match": "transition|in|out|animate",
774 "name": "keyword.other.animation.svelte"
775 },
776 {
777 "match": "let",
778 "name": "storage.type.svelte"
779 },
780 {
781 "match": "class|style",
782 "name": "entity.other.attribute-name.svelte"
783 }
784 ]
785 },
786 "attributes-directives-types": {
787 "patterns": [
788 {
789 "match": "(?<=(on):).*$",
790 "name": "entity.name.type.svelte"
791 },
792 {
793 "match": "(?<=(bind):).*$",
794 "name": "variable.parameter.svelte"
795 },
796 {
797 "match": "(?<=(use|transition|in|out|animate):).*$",
798 "name": "variable.function.svelte"
799 },
800 {
801 "match": "(?<=(let|class|style):).*$",
802 "name": "variable.parameter.svelte"
803 }
804 ]
805 },
806 "attributes-directives-types-assigned": {
807 "patterns": [
808 {
809 "match": "(?<=(bind):)this$",
810 "name": "variable.language.svelte"
811 },
812 {
813 "match": "(?<=(bind):).*$",
814 "name": "entity.name.type.svelte"
815 },
816 {
817 "match": "(?<=(class):).*$",
818 "name": "entity.other.attribute-name.class.svelte"
819 },
820 {
821 "match": "(?<=(style):).*$",
822 "name": "support.type.property-name.svelte"
823 },
824 {
825 "include": "#attributes-directives-types"
826 }
827 ]
828 },
829 "attributes-directives": {
830 "begin": "(?<!<)(on|use|bind|transition|in|out|animate|let|class|style)(:)(?:((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*(?=\\s*=))|((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*))((\\|\\w+)*)",
831 "beginCaptures": {
832 "1": {
833 "patterns": [
834 {
835 "include": "#attributes-directives-keywords"
836 }
837 ]
838 },
839 "2": {
840 "name": "punctuation.definition.keyword.svelte"
841 },
842 "3": {
843 "patterns": [
844 {
845 "include": "#attributes-directives-types-assigned"
846 }
847 ]
848 },
849 "4": {
850 "patterns": [
851 {
852 "include": "#attributes-directives-types"
853 }
854 ]
855 },
856 "5": {
857 "patterns": [
858 {
859 "match": "\\w+",
860 "name": "support.function.svelte"
861 },
862 {
863 "match": "\\|",
864 "name": "punctuation.separator.svelte"
865 }
866 ]
867 }
868 },
869 "end": "(?=\\s*+[^=\\s])",
870 "name": "meta.directive.$1.svelte",
871 "patterns": [
872 {
873 "begin": "=",
874 "beginCaptures": {
875 "0": {
876 "name": "punctuation.separator.key-value.svelte"
877 }
878 },
879 "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)",
880 "patterns": [
881 {
882 "include": "#attributes-value"
883 }
884 ]
885 }
886 ]
887 },
888 "attributes-generics": {
889 "begin": "(generics)(=)([\"'])",
890 "beginCaptures": {
891 "1": {
892 "name": "entity.other.attribute-name.svelte"
893 },
894 "2": {
895 "name": "punctuation.separator.key-value.svelte"
896 },
897 "3": {
898 "name": "punctuation.definition.string.begin.svelte"
899 }
900 },
901 "end": "(\\3)",
902 "endCaptures": {
903 "1": {
904 "name": "punctuation.definition.string.end.svelte"
905 }
906 },
907 "contentName": "meta.embedded.expression.svelte source.ts",
908 "patterns": [
909 {
910 "include": "#type-parameters"
911 }
912 ]
913 },
914 "type-parameters": {
915 "name": "meta.type.parameters.ts",
916 "patterns": [
917 {
918 "include": "source.ts#comment"
919 },
920 {
921 "name": "storage.modifier.ts",
922 "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"
923 },
924 {
925 "include": "source.ts#type"
926 },
927 {
928 "include": "source.ts#punctuation-comma"
929 },
930 {
931 "name": "keyword.operator.assignment.ts",
932 "match": "(=)(?!>)"
933 }
934 ]
935 },
936 "tags": {
937 "patterns": [
938 {
939 "include": "#tags-lang"
940 },
941 {
942 "include": "#tags-void"
943 },
944 {
945 "include": "#tags-general-end"
946 },
947 {
948 "include": "#tags-general-start"
949 }
950 ]
951 },
952 "tags-name": {
953 "patterns": [
954 {
955 "match": "(svelte)(:)([a-z][\\w0-9:-]*)",
956 "captures": {
957 "1": {
958 "name": "keyword.control.svelte"
959 },
960 "2": {
961 "name": "punctuation.definition.keyword.svelte"
962 },
963 "3": {
964 "name": "entity.name.tag.svelte"
965 }
966 }
967 },
968 {
969 "match": "slot",
970 "name": "keyword.control.svelte"
971 },
972 {
973 "match": "[A-Z][a-zA-Z0-9_]*",
974 "name": "support.class.component.svelte"
975 },
976 {
977 "match": "[a-z][\\w0-9:]*-[\\w0-9:-]*",
978 "name": "meta.tag.custom.svelte entity.name.tag.svelte"
979 },
980 {
981 "match": "[a-z][\\w0-9:-]*",
982 "name": "entity.name.tag.svelte"
983 }
984 ]
985 },
986 "tags-start-attributes": {
987 "begin": "\\G",
988 "end": "(?=/?>)",
989 "name": "meta.tag.start.svelte",
990 "patterns": [
991 {
992 "include": "#attributes"
993 }
994 ]
995 },
996 "tags-lang-start-attributes": {
997 "begin": "\\G",
998 "end": "(?=/>)|>",
999 "endCaptures": {
1000 "0": {
1001 "name": "punctuation.definition.tag.end.svelte"
1002 }
1003 },
1004 "name": "meta.tag.start.svelte",
1005 "patterns": [
1006 {
1007 "include": "#attributes-generics"
1008 },
1009 {
1010 "include": "#attributes"
1011 }
1012 ]
1013 },
1014 "tags-start-node": {
1015 "match": "(<)([^/\\s>/]*)",
1016 "captures": {
1017 "1": {
1018 "name": "punctuation.definition.tag.begin.svelte"
1019 },
1020 "2": {
1021 "patterns": [
1022 {
1023 "include": "#tags-name"
1024 }
1025 ]
1026 }
1027 },
1028 "name": "meta.tag.start.svelte"
1029 },
1030 "tags-end-node": {
1031 "match": "(</)(.*?)\\s*(>)|(/>)",
1032 "captures": {
1033 "1": {
1034 "name": "meta.tag.end.svelte punctuation.definition.tag.begin.svelte"
1035 },
1036 "2": {
1037 "name": "meta.tag.end.svelte",
1038 "patterns": [
1039 {
1040 "include": "#tags-name"
1041 }
1042 ]
1043 },
1044 "3": {
1045 "name": "meta.tag.end.svelte punctuation.definition.tag.end.svelte"
1046 },
1047 "4": {
1048 "name": "meta.tag.start.svelte punctuation.definition.tag.end.svelte"
1049 }
1050 }
1051 },
1052 "tags-lang": {
1053 "begin": "<(script|style|template)",
1054 "end": "</\\1\\s*>|/>",
1055 "beginCaptures": {
1056 "0": {
1057 "patterns": [
1058 {
1059 "include": "#tags-start-node"
1060 }
1061 ]
1062 }
1063 },
1064 "endCaptures": {
1065 "0": {
1066 "patterns": [
1067 {
1068 "include": "#tags-end-node"
1069 }
1070 ]
1071 }
1072 },
1073 "name": "meta.$1.svelte",
1074 "patterns": [
1075 {
1076 "begin": "\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/)?(\\w+)\\2)",
1077 "end": "(?=</|/>)",
1078 "name": "meta.lang.$3.svelte",
1079 "patterns": [
1080 {
1081 "include": "#tags-lang-start-attributes"
1082 }
1083 ]
1084 },
1085 {
1086 "include": "#tags-lang-start-attributes"
1087 }
1088 ]
1089 },
1090 "tags-void": {
1091 "begin": "(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)",
1092 "beginCaptures": {
1093 "1": {
1094 "name": "punctuation.definition.tag.begin.svelte"
1095 },
1096 "2": {
1097 "name": "entity.name.tag.svelte"
1098 }
1099 },
1100 "end": "/?>",
1101 "endCaptures": {
1102 "0": {
1103 "name": "punctuation.definition.tag.begin.svelte"
1104 }
1105 },
1106 "name": "meta.tag.void.svelte",
1107 "patterns": [
1108 {
1109 "include": "#attributes"
1110 }
1111 ]
1112 },
1113 "tags-general-start": {
1114 "begin": "(<)([^/\\s>/]*)",
1115 "end": "(/?>)",
1116 "beginCaptures": {
1117 "0": {
1118 "patterns": [
1119 {
1120 "include": "#tags-start-node"
1121 }
1122 ]
1123 }
1124 },
1125 "endCaptures": {
1126 "1": {
1127 "name": "meta.tag.start.svelte punctuation.definition.tag.end.svelte"
1128 }
1129 },
1130 "name": "meta.scope.tag.$2.svelte",
1131 "patterns": [
1132 {
1133 "include": "#tags-start-attributes"
1134 }
1135 ]
1136 },
1137 "tags-general-end": {
1138 "begin": "(</)([^/\\s>]*)",
1139 "end": "(>)",
1140 "beginCaptures": {
1141 "1": {
1142 "name": "meta.tag.end.svelte punctuation.definition.tag.begin.svelte"
1143 },
1144 "2": {
1145 "name": "meta.tag.end.svelte",
1146 "patterns": [
1147 {
1148 "include": "#tags-name"
1149 }
1150 ]
1151 }
1152 },
1153 "endCaptures": {
1154 "1": {
1155 "name": "meta.tag.end.svelte punctuation.definition.tag.end.svelte"
1156 }
1157 },
1158 "name": "meta.scope.tag.$2.svelte"
1159 }
1160 }
1161 }
1162