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 / vue.tmLanguage.json

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

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