PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.13.0
Code Block Pro – Beautiful Syntax Highlighting v1.13.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.13.0, at build/shiki/languages/vue.tmLanguage.json

1,206 lines 31.0 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*(['\"]?)json5\\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.json5",
530 "patterns": [
531 {
532 "include": "source.json5"
533 }
534 ]
535 }
536 ]
537 },
538 {
539 "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)yaml\\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.yaml",
562 "patterns": [
563 {
564 "include": "source.yaml"
565 }
566 ]
567 }
568 ]
569 },
570 {
571 "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)toml\\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.toml",
594 "patterns": [
595 {
596 "include": "source.toml"
597 }
598 ]
599 }
600 ]
601 },
602 {
603 "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)(gql|graphql)\\b\\2)",
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": "(?=<\\/)",
625 "name": "source.graphql",
626 "patterns": [
627 {
628 "include": "source.graphql"
629 }
630 ]
631 }
632 ]
633 },
634 {
635 "begin": "(template)\\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": "(?=<\\/template\\b)",
657 "name": "text.html.derivative",
658 "patterns": [
659 {
660 "include": "#html-stuff"
661 }
662 ]
663 }
664 ]
665 },
666 {
667 "begin": "(script)\\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": "(?=<\\/script\\b)",
689 "name": "source.js",
690 "patterns": [
691 {
692 "include": "source.js"
693 }
694 ]
695 }
696 ]
697 },
698 {
699 "begin": "(style)\\b",
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": "(?=<\\/style\\b)",
721 "name": "source.css",
722 "patterns": [
723 {
724 "include": "source.css"
725 }
726 ]
727 }
728 ]
729 },
730 {
731 "begin": "([a-zA-Z0-9:-]+)",
732 "beginCaptures": {
733 "1": {
734 "name": "entity.name.tag.$1.html.vue"
735 }
736 },
737 "end": "(</)(\\1)\\s*(?=>)",
738 "endCaptures": {
739 "1": {
740 "name": "punctuation.definition.tag.begin.html.vue"
741 },
742 "2": {
743 "name": "entity.name.tag.$2.html.vue"
744 }
745 },
746 "patterns": [
747 {
748 "include": "#tag-stuff"
749 },
750 {
751 "begin": "(?<=>)",
752 "end": "(?=<\\/)",
753 "name": "text"
754 }
755 ]
756 }
757 ]
758 }
759 ],
760 "repository": {
761 "self-closing-tag": {
762 "begin": "(<)([a-zA-Z0-9:-]+)(?=([^>]+/>))",
763 "beginCaptures": {
764 "1": {
765 "name": "punctuation.definition.tag.begin.html.vue"
766 },
767 "2": {
768 "name": "entity.name.tag.$2.html.vue"
769 }
770 },
771 "end": "(/>)",
772 "endCaptures": {
773 "1": {
774 "name": "punctuation.definition.tag.end.html.vue"
775 }
776 },
777 "name": "self-closing-tag",
778 "patterns": [
779 {
780 "include": "#tag-stuff"
781 }
782 ]
783 },
784 "template-tag": {
785 "patterns": [
786 {
787 "include": "#template-tag-1"
788 },
789 {
790 "include": "#template-tag-2"
791 }
792 ]
793 },
794 "template-tag-1": {
795 "begin": "(<)(template)\\b(>)",
796 "beginCaptures": {
797 "1": {
798 "name": "punctuation.definition.tag.begin.html.vue"
799 },
800 "2": {
801 "name": "entity.name.tag.$2.html.vue"
802 },
803 "3": {
804 "name": "punctuation.definition.tag.end.html.vue"
805 }
806 },
807 "end": "(/?>)",
808 "endCaptures": {
809 "1": {
810 "name": "punctuation.definition.tag.end.html.vue"
811 }
812 },
813 "name": "meta.template-tag.start",
814 "patterns": [
815 {
816 "begin": "\\G",
817 "end": "(?=/>)|((</)(template)\\b)",
818 "endCaptures": {
819 "2": {
820 "name": "punctuation.definition.tag.begin.html.vue"
821 },
822 "3": {
823 "name": "entity.name.tag.$3.html.vue"
824 }
825 },
826 "name": "meta.template-tag.end",
827 "patterns": [
828 {
829 "include": "#html-stuff"
830 }
831 ]
832 }
833 ]
834 },
835 "template-tag-2": {
836 "begin": "(<)(template)\\b",
837 "beginCaptures": {
838 "1": {
839 "name": "punctuation.definition.tag.begin.html.vue"
840 },
841 "2": {
842 "name": "entity.name.tag.$2.html.vue"
843 }
844 },
845 "end": "(/?>)",
846 "endCaptures": {
847 "1": {
848 "name": "punctuation.definition.tag.end.html.vue"
849 }
850 },
851 "name": "meta.template-tag.start",
852 "patterns": [
853 {
854 "begin": "\\G",
855 "end": "(?=/>)|((</)(template)\\b)",
856 "endCaptures": {
857 "2": {
858 "name": "punctuation.definition.tag.begin.html.vue"
859 },
860 "3": {
861 "name": "entity.name.tag.$3.html.vue"
862 }
863 },
864 "name": "meta.template-tag.end",
865 "patterns": [
866 {
867 "include": "#tag-stuff"
868 },
869 {
870 "include": "#html-stuff"
871 }
872 ]
873 }
874 ]
875 },
876 "html-stuff": {
877 "patterns": [
878 {
879 "include": "#template-tag"
880 },
881 {
882 "include": "text.html.derivative"
883 },
884 {
885 "include": "text.html.basic"
886 }
887 ]
888 },
889 "tag-stuff": {
890 "begin": "\\G",
891 "end": "(?=/>)|(>)",
892 "endCaptures": {
893 "1": {
894 "name": "punctuation.definition.tag.end.html.vue"
895 }
896 },
897 "name": "meta.tag-stuff",
898 "patterns": [
899 {
900 "include": "#vue-directives"
901 },
902 {
903 "include": "text.html.basic#attribute"
904 }
905 ]
906 },
907 "vue-directives": {
908 "patterns": [
909 {
910 "include": "#vue-directives-control"
911 },
912 {
913 "include": "#vue-directives-style-attr"
914 },
915 {
916 "include": "#vue-directives-original"
917 },
918 {
919 "include": "#vue-directives-generic-attr"
920 }
921 ]
922 },
923 "vue-directives-original": {
924 "begin": "(?:\\b(v-)|(:)|(@)|(#))(\\[?)([\\w\\-]*)(\\]?)(?:\\.([\\w\\-]*))*",
925 "beginCaptures": {
926 "1": {
927 "name": "entity.other.attribute-name.html.vue"
928 },
929 "2": {
930 "name": "punctuation.attribute-shorthand.bind.html.vue"
931 },
932 "3": {
933 "name": "punctuation.attribute-shorthand.event.html.vue"
934 },
935 "4": {
936 "name": "punctuation.attribute-shorthand.slot.html.vue"
937 },
938 "5": {
939 "name": "punctuation.separator.key-value.html.vue"
940 },
941 "6": {
942 "name": "entity.other.attribute-name.html.vue"
943 },
944 "7": {
945 "name": "punctuation.separator.key-value.html.vue"
946 },
947 "8": {
948 "name": "entity.other.attribute-name.html.vue"
949 },
950 "9": {
951 "name": "punctuation.separator.key-value.html.vue"
952 }
953 },
954 "end": "(?=\\s*+[^=\\s])",
955 "endCaptures": {
956 "1": {
957 "name": "punctuation.definition.string.end.html.vue"
958 }
959 },
960 "name": "meta.attribute.directive.vue",
961 "patterns": [
962 {
963 "include": "#vue-directives-expression"
964 }
965 ]
966 },
967 "vue-directives-control": {
968 "begin": "(v-for)|(v-if|v-else-if|v-else)",
969 "captures": {
970 "1": {
971 "name": "keyword.control.loop.vue"
972 },
973 "2": {
974 "name": "keyword.control.conditional.vue"
975 }
976 },
977 "end": "(?=\\s*+[^=\\s])",
978 "name": "meta.attribute.directive.control.vue",
979 "patterns": [
980 {
981 "include": "#vue-directives-expression"
982 }
983 ]
984 },
985 "vue-directives-expression": {
986 "patterns": [
987 {
988 "begin": "(=)\\s*('|\"|`)",
989 "beginCaptures": {
990 "1": {
991 "name": "punctuation.separator.key-value.html.vue"
992 },
993 "2": {
994 "name": "punctuation.definition.string.begin.html.vue"
995 }
996 },
997 "end": "(\\2)",
998 "endCaptures": {
999 "1": {
1000 "name": "punctuation.definition.string.end.html.vue"
1001 }
1002 },
1003 "patterns": [
1004 {
1005 "begin": "(?<=('|\"|`))",
1006 "end": "(?=\\1)",
1007 "name": "source.ts.embedded.html.vue",
1008 "patterns": [
1009 {
1010 "include": "source.ts"
1011 }
1012 ]
1013 }
1014 ]
1015 },
1016 {
1017 "begin": "(=)\\s*(?=[^'\"`])",
1018 "beginCaptures": {
1019 "1": {
1020 "name": "punctuation.separator.key-value.html.vue"
1021 }
1022 },
1023 "end": "(?=(\\s|>|\\/>))",
1024 "patterns": [
1025 {
1026 "begin": "(?=[^'\"`])",
1027 "end": "(?=(\\s|>|\\/>))",
1028 "name": "source.ts.embedded.html.vue",
1029 "patterns": [
1030 {
1031 "include": "source.ts"
1032 }
1033 ]
1034 }
1035 ]
1036 }
1037 ]
1038 },
1039 "vue-directives-style-attr": {
1040 "begin": "\\b(style)\\s*(=)",
1041 "captures": {
1042 "1": {
1043 "name": "entity.other.attribute-name.html.vue"
1044 },
1045 "2": {
1046 "name": "punctuation.separator.key-value.html.vue"
1047 }
1048 },
1049 "end": "(?<='|\")",
1050 "name": "meta.attribute.style.vue",
1051 "patterns": [
1052 {
1053 "comment": "Copy from source.css#rule-list-innards",
1054 "begin": "('|\")",
1055 "beginCaptures": {
1056 "1": {
1057 "name": "punctuation.definition.string.begin.html.vue"
1058 }
1059 },
1060 "end": "(\\1)",
1061 "endCaptures": {
1062 "1": {
1063 "name": "punctuation.definition.string.end.html.vue"
1064 }
1065 },
1066 "name": "source.css.embedded.html.vue",
1067 "patterns": [
1068 {
1069 "include": "source.css#comment-block"
1070 },
1071 {
1072 "include": "source.css#escapes"
1073 },
1074 {
1075 "include": "source.css#font-features"
1076 },
1077 {
1078 "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)*",
1079 "name": "variable.css"
1080 },
1081 {
1082 "begin": "(?<![-a-zA-Z])(?=[-a-zA-Z])",
1083 "end": "$|(?![-a-zA-Z])",
1084 "name": "meta.property-name.css",
1085 "patterns": [
1086 {
1087 "include": "source.css#property-names"
1088 }
1089 ]
1090 },
1091 {
1092 "comment": "Modify end to fix #199. TODO: handle ' character.",
1093 "begin": "(:)\\s*",
1094 "beginCaptures": {
1095 "1": {
1096 "name": "punctuation.separator.key-value.css"
1097 }
1098 },
1099 "end": "\\s*(;)|\\s*(?='|\")",
1100 "endCaptures": {
1101 "1": {
1102 "name": "punctuation.terminator.rule.css"
1103 }
1104 },
1105 "contentName": "meta.property-value.css",
1106 "patterns": [
1107 {
1108 "include": "source.css#comment-block"
1109 },
1110 {
1111 "include": "source.css#property-values"
1112 }
1113 ]
1114 },
1115 {
1116 "match": ";",
1117 "name": "punctuation.terminator.rule.css"
1118 }
1119 ]
1120 }
1121 ]
1122 },
1123 "vue-directives-generic-attr": {
1124 "begin": "\\b(generic)\\s*(=)",
1125 "captures": {
1126 "1": {
1127 "name": "entity.other.attribute-name.html.vue"
1128 },
1129 "2": {
1130 "name": "punctuation.separator.key-value.html.vue"
1131 }
1132 },
1133 "end": "(?<='|\")",
1134 "name": "meta.attribute.generic.vue",
1135 "patterns": [
1136 {
1137 "begin": "('|\")",
1138 "beginCaptures": {
1139 "1": {
1140 "name": "punctuation.definition.string.begin.html.vue"
1141 }
1142 },
1143 "end": "(\\1)",
1144 "endCaptures": {
1145 "1": {
1146 "name": "punctuation.definition.string.end.html.vue"
1147 }
1148 },
1149 "name": "meta.type.parameters.vue",
1150 "comment": "https://github.com/microsoft/vscode/blob/fd4346210f59135fad81a8b8c4cea7bf5a9ca6b4/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json#L4002-L4020",
1151 "patterns": [
1152 {
1153 "include": "source.ts#comment"
1154 },
1155 {
1156 "name": "storage.modifier.ts",
1157 "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"
1158 },
1159 {
1160 "include": "source.ts#type"
1161 },
1162 {
1163 "include": "source.ts#punctuation-comma"
1164 },
1165 {
1166 "name": "keyword.operator.assignment.ts",
1167 "match": "(=)(?!>)"
1168 }
1169 ]
1170 }
1171 ]
1172 },
1173 "vue-interpolations": {
1174 "patterns": [
1175 {
1176 "begin": "(\\{\\{)",
1177 "beginCaptures": {
1178 "1": {
1179 "name": "punctuation.definition.interpolation.begin.html.vue"
1180 }
1181 },
1182 "end": "(\\}\\})",
1183 "endCaptures": {
1184 "1": {
1185 "name": "punctuation.definition.interpolation.end.html.vue"
1186 }
1187 },
1188 "name": "expression.embedded.vue",
1189 "patterns": [
1190 {
1191 "begin": "\\G",
1192 "end": "(?=\\}\\})",
1193 "name": "source.ts.embedded.html.vue",
1194 "patterns": [
1195 {
1196 "include": "source.ts"
1197 }
1198 ]
1199 }
1200 ]
1201 }
1202 ]
1203 }
1204 }
1205 }
1206