├── .gitignore ├── LICENSE ├── README.md ├── samples ├── arrow.vue ├── basic.vue └── langs.vue ├── vue.YAML-tmLanguage ├── vue.sublime-settings └── vue.tmLanguage /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013-2016 Evan You 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vue Syntax Highlight 2 | 3 | **Note:** The `master` branch hosts the `tmLanguage` based implementation that is distributed to Sublime Text build < 3153. It is also used to power GitHub's syntax highlight of `*.vue` files in [linguist](https://github.com/github/linguist). 4 | 5 | For a newer implementation of the syntax that is distributed to build >=3153, See the [new](https://github.com/vuejs/vue-syntax-highlight/tree/new) branch. 6 | 7 | --- 8 | 9 | Sublime Text Syntax highlighting for single-file [Vue.js](http://vuejs.org) components (enabled by [vue-loader](https://github.com/vuejs/vue-loader) or [vueify](https://github.com/vuejs/vueify)). 10 | 11 | ![screenshot](https://raw.githubusercontent.com/vuejs/vue-syntax-highlight/new/samples/screenshot.png) 12 | 13 | ### Install 14 | 15 | - Via Package Control: search for `Vue Syntax Highlight`. 16 | - Manual: clone this repo into your Sublime `Packages` folder. 17 | 18 | **Additional Installation Requirements:** In order to get proper syntax highlighting for pre-processors (e.g. Jade, SASS, CoffeeScript) you will also need to install the corresponding packages for each of them. 19 | 20 | ### Enabling JSX Highlighting 21 | 22 | The ` 29 | 30 | 35 | -------------------------------------------------------------------------------- /samples/langs.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | 17 | 23 | 24 | 29 | 30 | 36 | 37 | 42 | -------------------------------------------------------------------------------- /vue.YAML-tmLanguage: -------------------------------------------------------------------------------- 1 | # [PackageDev] target_format: plist, ext: tmLanguage 2 | --- 3 | name: Vue Component 4 | scopeName: text.html.vue 5 | fileTypes: [vue] 6 | uuid: 5512c10d-4cc5-434c-b8fc-53b912f55ab3 7 | 8 | patterns: 9 | - include: '#vue-interpolations' 10 | 11 | - name: meta.tag.any.html 12 | begin: (<)([a-zA-Z0-9:-]++)(?=[^>]*>) 13 | beginCaptures: 14 | '1': {name: punctuation.definition.tag.begin.html} 15 | '2': {name: entity.name.tag.html} 16 | end: (>)(<)(/)(\2)(>) 17 | endCaptures: 18 | '1': {name: punctuation.definition.tag.end.html} 19 | '2': {name: punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html} 20 | '3': {name: punctuation.definition.tag.begin.html} 21 | '4': {name: entity.name.tag.html} 22 | '5': {name: punctuation.definition.tag.end.html} 23 | patterns: 24 | - include: '#tag-stuff' 25 | 26 | - name: meta.tag.preprocessor.xml.html 27 | begin: (<\?)(xml) 28 | end: (\?>) 29 | captures: 30 | '1': {name: punctuation.definition.tag.html} 31 | '2': {name: entity.name.tag.xml.html} 32 | patterns: 33 | - include: '#tag-generic-attribute' 34 | - include: '#string-double-quoted' 35 | - include: '#string-single-quoted' 36 | 37 | - name: comment.block.html 38 | begin: )$ 470 | |<\?(?:php)?.*\b(if|for(each)?|while)\b.+: 471 | |\{\{?(if|foreach|capture|literal|foreach|php|section|strip) 472 | |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/))) 473 | ) 474 | 475 | foldingStopMarker: |- 476 | (?x) 477 | ( 478 | |^(?!.*?$ 480 | |<\?(?:php)?.*\bend(if|for(each)?|while)\b 481 | |\{\{?/(if|foreach|capture|literal|foreach|php|section|strip) 482 | |^[^{]*\} 483 | ) 484 | 485 | keyEquivalent: ^~H 486 | -------------------------------------------------------------------------------- /vue.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": 3 | [ 4 | "vue", 5 | "we", 6 | "wpy" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /vue.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | vue 8 | 9 | foldingStartMarker 10 | (?x) 11 | (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)\b.*?> 12 | |<!--(?!.*--\s*>) 13 | |^<!--\ \#tminclude\ (?>.*?-->)$ 14 | |<\?(?:php)?.*\b(if|for(each)?|while)\b.+: 15 | |\{\{?(if|foreach|capture|literal|foreach|php|section|strip) 16 | |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/))) 17 | ) 18 | foldingStopMarker 19 | (?x) 20 | (</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)> 21 | |^(?!.*?<!--).*?--\s*> 22 | |^<!--\ end\ tminclude\ -->$ 23 | |<\?(?:php)?.*\bend(if|for(each)?|while)\b 24 | |\{\{?/(if|foreach|capture|literal|foreach|php|section|strip) 25 | |^[^{]*\} 26 | ) 27 | keyEquivalent 28 | ^~H 29 | name 30 | Vue Component 31 | patterns 32 | 33 | 34 | include 35 | #vue-interpolations 36 | 37 | 38 | begin 39 | (<)([a-zA-Z0-9:-]++)(?=[^>]*></\2>) 40 | beginCaptures 41 | 42 | 1 43 | 44 | name 45 | punctuation.definition.tag.begin.html 46 | 47 | 2 48 | 49 | name 50 | entity.name.tag.html 51 | 52 | 53 | end 54 | (>)(<)(/)(\2)(>) 55 | endCaptures 56 | 57 | 1 58 | 59 | name 60 | punctuation.definition.tag.end.html 61 | 62 | 2 63 | 64 | name 65 | punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html 66 | 67 | 3 68 | 69 | name 70 | punctuation.definition.tag.begin.html 71 | 72 | 4 73 | 74 | name 75 | entity.name.tag.html 76 | 77 | 5 78 | 79 | name 80 | punctuation.definition.tag.end.html 81 | 82 | 83 | name 84 | meta.tag.any.html 85 | patterns 86 | 87 | 88 | include 89 | #tag-stuff 90 | 91 | 92 | 93 | 94 | begin 95 | (<\?)(xml) 96 | captures 97 | 98 | 1 99 | 100 | name 101 | punctuation.definition.tag.html 102 | 103 | 2 104 | 105 | name 106 | entity.name.tag.xml.html 107 | 108 | 109 | end 110 | (\?>) 111 | name 112 | meta.tag.preprocessor.xml.html 113 | patterns 114 | 115 | 116 | include 117 | #tag-generic-attribute 118 | 119 | 120 | include 121 | #string-double-quoted 122 | 123 | 124 | include 125 | #string-single-quoted 126 | 127 | 128 | 129 | 130 | begin 131 | <!-- 132 | captures 133 | 134 | 0 135 | 136 | name 137 | punctuation.definition.comment.html 138 | 139 | 140 | end 141 | --\s*> 142 | name 143 | comment.block.html 144 | patterns 145 | 146 | 147 | match 148 | -- 149 | name 150 | invalid.illegal.bad-comments-or-CDATA.html 151 | 152 | 153 | 154 | 155 | begin 156 | <! 157 | captures 158 | 159 | 0 160 | 161 | name 162 | punctuation.definition.tag.html 163 | 164 | 165 | end 166 | > 167 | name 168 | meta.tag.sgml.html 169 | patterns 170 | 171 | 172 | begin 173 | (?i:DOCTYPE) 174 | captures 175 | 176 | 1 177 | 178 | name 179 | entity.name.tag.doctype.html 180 | 181 | 182 | end 183 | (?=>) 184 | name 185 | meta.tag.sgml.doctype.html 186 | patterns 187 | 188 | 189 | match 190 | "[^">]*" 191 | name 192 | string.quoted.double.doctype.identifiers-and-DTDs.html 193 | 194 | 195 | 196 | 197 | begin 198 | \[CDATA\[ 199 | end 200 | ]](?=>) 201 | name 202 | constant.other.inline-data.html 203 | 204 | 205 | match 206 | (\s*)(?!--|>)\S(\s*) 207 | name 208 | invalid.illegal.bad-comments-or-CDATA.html 209 | 210 | 211 | 212 | 213 | begin 214 | (?:^\s+)?(<)((?i:template))\b(?=[^>]*lang=(['"])slm\1?) 215 | captures 216 | 217 | 1 218 | 219 | name 220 | punctuation.definition.tag.begin.html 221 | 222 | 2 223 | 224 | name 225 | entity.name.tag.style.html 226 | 227 | 3 228 | 229 | name 230 | punctuation.definition.tag.html 231 | 232 | 233 | end 234 | (</)((?i:template))(>)(?:\s*\n)? 235 | name 236 | text.slm.embedded.html 237 | patterns 238 | 239 | 240 | include 241 | #tag-stuff 242 | 243 | 244 | begin 245 | (>) 246 | beginCaptures 247 | 248 | 1 249 | 250 | name 251 | punctuation.definition.tag.end.html 252 | 253 | 254 | end 255 | (?=</(?i:template)) 256 | patterns 257 | 258 | 259 | include 260 | text.slm 261 | 262 | 263 | 264 | 265 | 266 | 267 | begin 268 | (?:^\s+)?(<)((?i:template))\b(?=[^>]*lang=(['"])jade\1?) 269 | captures 270 | 271 | 1 272 | 273 | name 274 | punctuation.definition.tag.begin.html 275 | 276 | 2 277 | 278 | name 279 | entity.name.tag.style.html 280 | 281 | 3 282 | 283 | name 284 | punctuation.definition.tag.html 285 | 286 | 287 | end 288 | (</)((?i:template))(>)(?:\s*\n)? 289 | name 290 | text.jade.embedded.html 291 | patterns 292 | 293 | 294 | include 295 | #tag-stuff 296 | 297 | 298 | begin 299 | (>) 300 | beginCaptures 301 | 302 | 1 303 | 304 | name 305 | punctuation.definition.tag.end.html 306 | 307 | 308 | end 309 | (?=</(?i:template)) 310 | patterns 311 | 312 | 313 | include 314 | text.jade 315 | 316 | 317 | 318 | 319 | 320 | 321 | begin 322 | (?:^\s+)?(<)((?i:template))\b(?=[^>]*lang=(['"])pug\1?) 323 | captures 324 | 325 | 1 326 | 327 | name 328 | punctuation.definition.tag.begin.html 329 | 330 | 2 331 | 332 | name 333 | entity.name.tag.style.html 334 | 335 | 3 336 | 337 | name 338 | punctuation.definition.tag.html 339 | 340 | 341 | end 342 | (</)((?i:template))(>)(?:\s*\n)? 343 | name 344 | text.pug.embedded.html 345 | patterns 346 | 347 | 348 | include 349 | #tag-stuff 350 | 351 | 352 | begin 353 | (>) 354 | beginCaptures 355 | 356 | 1 357 | 358 | name 359 | punctuation.definition.tag.end.html 360 | 361 | 362 | end 363 | (?=</(?i:template)) 364 | patterns 365 | 366 | 367 | include 368 | text.pug 369 | 370 | 371 | 372 | 373 | 374 | 375 | begin 376 | (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang=(['"])stylus\1?) 377 | captures 378 | 379 | 1 380 | 381 | name 382 | punctuation.definition.tag.begin.html 383 | 384 | 2 385 | 386 | name 387 | entity.name.tag.style.html 388 | 389 | 3 390 | 391 | name 392 | punctuation.definition.tag.html 393 | 394 | 395 | end 396 | (</)((?i:style))(>)(?:\s*\n)? 397 | name 398 | source.stylus.embedded.html 399 | patterns 400 | 401 | 402 | include 403 | #tag-stuff 404 | 405 | 406 | begin 407 | (>) 408 | beginCaptures 409 | 410 | 1 411 | 412 | name 413 | punctuation.definition.tag.end.html 414 | 415 | 416 | end 417 | (?=</(?i:style)) 418 | patterns 419 | 420 | 421 | include 422 | source.stylus 423 | 424 | 425 | 426 | 427 | 428 | 429 | begin 430 | (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang=(['"])postcss\1?) 431 | captures 432 | 433 | 1 434 | 435 | name 436 | punctuation.definition.tag.begin.html 437 | 438 | 2 439 | 440 | name 441 | entity.name.tag.style.html 442 | 443 | 3 444 | 445 | name 446 | punctuation.definition.tag.html 447 | 448 | 449 | end 450 | (</)((?i:style))(>)(?:\s*\n)? 451 | name 452 | source.postcss.embedded.html 453 | patterns 454 | 455 | 456 | include 457 | #tag-stuff 458 | 459 | 460 | begin 461 | (>) 462 | beginCaptures 463 | 464 | 1 465 | 466 | name 467 | punctuation.definition.tag.end.html 468 | 469 | 470 | end 471 | (?=</(?i:style)) 472 | patterns 473 | 474 | 475 | include 476 | source.postcss 477 | 478 | 479 | 480 | 481 | 482 | 483 | begin 484 | (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang=(['"])sass\1?) 485 | captures 486 | 487 | 1 488 | 489 | name 490 | punctuation.definition.tag.begin.html 491 | 492 | 2 493 | 494 | name 495 | entity.name.tag.style.html 496 | 497 | 3 498 | 499 | name 500 | punctuation.definition.tag.html 501 | 502 | 503 | end 504 | (</)((?i:style))(>)(?:\s*\n)? 505 | name 506 | source.sass.embedded.html 507 | patterns 508 | 509 | 510 | include 511 | #tag-stuff 512 | 513 | 514 | begin 515 | (>) 516 | beginCaptures 517 | 518 | 1 519 | 520 | name 521 | punctuation.definition.tag.end.html 522 | 523 | 524 | end 525 | (?=</(?i:style)) 526 | patterns 527 | 528 | 529 | include 530 | source.sass 531 | 532 | 533 | 534 | 535 | 536 | 537 | begin 538 | (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang=(['"])scss\1?) 539 | captures 540 | 541 | 1 542 | 543 | name 544 | punctuation.definition.tag.begin.html 545 | 546 | 2 547 | 548 | name 549 | entity.name.tag.style.html 550 | 551 | 3 552 | 553 | name 554 | punctuation.definition.tag.html 555 | 556 | 557 | end 558 | (</)((?i:style))(>)(?:\s*\n)? 559 | name 560 | source.scss.embedded.html 561 | patterns 562 | 563 | 564 | include 565 | #tag-stuff 566 | 567 | 568 | begin 569 | (>) 570 | beginCaptures 571 | 572 | 1 573 | 574 | name 575 | punctuation.definition.tag.end.html 576 | 577 | 578 | end 579 | (?=</(?i:style)) 580 | patterns 581 | 582 | 583 | include 584 | source.css.scss 585 | 586 | 587 | 588 | 589 | 590 | 591 | begin 592 | (?:^\s+)?(<)((?i:style))\b(?=[^>]*lang=(['"])less\1?) 593 | captures 594 | 595 | 1 596 | 597 | name 598 | punctuation.definition.tag.begin.html 599 | 600 | 2 601 | 602 | name 603 | entity.name.tag.style.html 604 | 605 | 3 606 | 607 | name 608 | punctuation.definition.tag.html 609 | 610 | 611 | end 612 | (</)((?i:style))(>)(?:\s*\n)? 613 | name 614 | source.less.embedded.html 615 | patterns 616 | 617 | 618 | include 619 | #tag-stuff 620 | 621 | 622 | begin 623 | (>) 624 | beginCaptures 625 | 626 | 1 627 | 628 | name 629 | punctuation.definition.tag.end.html 630 | 631 | 632 | end 633 | (?=</(?i:style)) 634 | patterns 635 | 636 | 637 | include 638 | source.css.less 639 | 640 | 641 | 642 | 643 | 644 | 645 | begin 646 | (?:^\s+)?(<)((?i:style))\b(?![^>]*/>) 647 | captures 648 | 649 | 1 650 | 651 | name 652 | punctuation.definition.tag.begin.html 653 | 654 | 2 655 | 656 | name 657 | entity.name.tag.style.html 658 | 659 | 3 660 | 661 | name 662 | punctuation.definition.tag.html 663 | 664 | 665 | end 666 | (</)((?i:style))(>)(?:\s*\n)? 667 | name 668 | source.css.embedded.html 669 | patterns 670 | 671 | 672 | include 673 | #tag-stuff 674 | 675 | 676 | begin 677 | (>) 678 | beginCaptures 679 | 680 | 1 681 | 682 | name 683 | punctuation.definition.tag.end.html 684 | 685 | 686 | end 687 | (?=</(?i:style)) 688 | patterns 689 | 690 | 691 | include 692 | source.css 693 | 694 | 695 | 696 | 697 | 698 | 699 | begin 700 | (?:^\s+)?(<)((?i:script))\b(?=[^>]*lang=(['"])ts\1?) 701 | beginCaptures 702 | 703 | 1 704 | 705 | name 706 | punctuation.definition.tag.begin.html 707 | 708 | 2 709 | 710 | name 711 | entity.name.tag.script.html 712 | 713 | 714 | end 715 | (?<=</(script|SCRIPT))(>)(?:\s*\n)? 716 | endCaptures 717 | 718 | 2 719 | 720 | name 721 | punctuation.definition.tag.html 722 | 723 | 724 | name 725 | source.ts.embedded.html 726 | patterns 727 | 728 | 729 | include 730 | #tag-stuff 731 | 732 | 733 | begin 734 | (?<!</(?:script|SCRIPT))(>) 735 | captures 736 | 737 | 1 738 | 739 | name 740 | punctuation.definition.tag.begin.html 741 | 742 | 2 743 | 744 | name 745 | entity.name.tag.script.html 746 | 747 | 748 | end 749 | (</)((?i:script)) 750 | patterns 751 | 752 | 753 | include 754 | source.ts 755 | 756 | 757 | 758 | 759 | 760 | 761 | begin 762 | (?:^\s+)?(<)((?i:script))\b(?=[^>]*lang=(['"])coffee\1?) 763 | beginCaptures 764 | 765 | 1 766 | 767 | name 768 | punctuation.definition.tag.begin.html 769 | 770 | 2 771 | 772 | name 773 | entity.name.tag.script.html 774 | 775 | 776 | end 777 | (?<=</(script|SCRIPT))(>)(?:\s*\n)? 778 | endCaptures 779 | 780 | 2 781 | 782 | name 783 | punctuation.definition.tag.html 784 | 785 | 786 | name 787 | source.coffee.embedded.html 788 | patterns 789 | 790 | 791 | include 792 | #tag-stuff 793 | 794 | 795 | begin 796 | (?<!</(?:script|SCRIPT))(>) 797 | captures 798 | 799 | 1 800 | 801 | name 802 | punctuation.definition.tag.begin.html 803 | 804 | 2 805 | 806 | name 807 | entity.name.tag.script.html 808 | 809 | 810 | end 811 | (</)((?i:script)) 812 | patterns 813 | 814 | 815 | include 816 | source.coffee 817 | 818 | 819 | 820 | 821 | 822 | 823 | begin 824 | (?:^\s+)?(<)((?i:script))\b(?=[^>]*lang=(['"])livescript\1?) 825 | beginCaptures 826 | 827 | 1 828 | 829 | name 830 | punctuation.definition.tag.begin.html 831 | 832 | 2 833 | 834 | name 835 | entity.name.tag.script.html 836 | 837 | 838 | end 839 | (?<=</(script|SCRIPT))(>)(?:\s*\n)? 840 | endCaptures 841 | 842 | 2 843 | 844 | name 845 | punctuation.definition.tag.html 846 | 847 | 848 | name 849 | source.livescript.embedded.html 850 | patterns 851 | 852 | 853 | include 854 | #tag-stuff 855 | 856 | 857 | begin 858 | (?<!</(?:script|SCRIPT))(>) 859 | captures 860 | 861 | 1 862 | 863 | name 864 | punctuation.definition.tag.begin.html 865 | 866 | 2 867 | 868 | name 869 | entity.name.tag.script.html 870 | 871 | 872 | end 873 | (</)((?i:script)) 874 | patterns 875 | 876 | 877 | include 878 | source.livescript 879 | 880 | 881 | 882 | 883 | 884 | 885 | begin 886 | (<)((?i:script))\b(?![^>]*/>)(?![^>]*(?i:type.?=.?text/((?!javascript|babel|ecmascript).*))) 887 | beginCaptures 888 | 889 | 1 890 | 891 | name 892 | punctuation.definition.tag.begin.html 893 | 894 | 2 895 | 896 | name 897 | entity.name.tag.script.html 898 | 899 | 900 | end 901 | (?<=</(script|SCRIPT))(>)(?:\s*\n)? 902 | endCaptures 903 | 904 | 2 905 | 906 | name 907 | punctuation.definition.tag.html 908 | 909 | 910 | name 911 | source.js.embedded.html 912 | patterns 913 | 914 | 915 | include 916 | #tag-stuff 917 | 918 | 919 | begin 920 | (?<!</(?:script|SCRIPT))(>) 921 | captures 922 | 923 | 1 924 | 925 | name 926 | punctuation.definition.tag.begin.html 927 | 928 | 2 929 | 930 | name 931 | entity.name.tag.script.html 932 | 933 | 934 | end 935 | (</)((?i:script)) 936 | patterns 937 | 938 | 939 | captures 940 | 941 | 1 942 | 943 | name 944 | punctuation.definition.comment.js 945 | 946 | 947 | match 948 | (//).*?((?=</script)|$\n?) 949 | name 950 | comment.line.double-slash.js 951 | 952 | 953 | begin 954 | /\* 955 | captures 956 | 957 | 0 958 | 959 | name 960 | punctuation.definition.comment.js 961 | 962 | 963 | end 964 | \*/|(?=</script) 965 | name 966 | comment.block.js 967 | 968 | 969 | include 970 | source.js 971 | 972 | 973 | 974 | 975 | 976 | 977 | begin 978 | (</?)((?i:body|head|html)\b) 979 | captures 980 | 981 | 1 982 | 983 | name 984 | punctuation.definition.tag.begin.html 985 | 986 | 2 987 | 988 | name 989 | entity.name.tag.structure.any.html 990 | 991 | 992 | end 993 | (>) 994 | endCaptures 995 | 996 | 1 997 | 998 | name 999 | punctuation.definition.tag.end.html 1000 | 1001 | 1002 | name 1003 | meta.tag.structure.any.html 1004 | patterns 1005 | 1006 | 1007 | include 1008 | #tag-stuff 1009 | 1010 | 1011 | 1012 | 1013 | begin 1014 | (</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\b) 1015 | beginCaptures 1016 | 1017 | 1 1018 | 1019 | name 1020 | punctuation.definition.tag.begin.html 1021 | 1022 | 2 1023 | 1024 | name 1025 | entity.name.tag.block.any.html 1026 | 1027 | 1028 | end 1029 | (>) 1030 | endCaptures 1031 | 1032 | 1 1033 | 1034 | name 1035 | punctuation.definition.tag.end.html 1036 | 1037 | 1038 | name 1039 | meta.tag.block.any.html 1040 | patterns 1041 | 1042 | 1043 | include 1044 | #tag-stuff 1045 | 1046 | 1047 | 1048 | 1049 | begin 1050 | (</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\b) 1051 | beginCaptures 1052 | 1053 | 1 1054 | 1055 | name 1056 | punctuation.definition.tag.begin.html 1057 | 1058 | 2 1059 | 1060 | name 1061 | entity.name.tag.inline.any.html 1062 | 1063 | 1064 | end 1065 | ((?: ?/)?>) 1066 | endCaptures 1067 | 1068 | 1 1069 | 1070 | name 1071 | punctuation.definition.tag.end.html 1072 | 1073 | 1074 | name 1075 | meta.tag.inline.any.html 1076 | patterns 1077 | 1078 | 1079 | include 1080 | #tag-stuff 1081 | 1082 | 1083 | 1084 | 1085 | begin 1086 | (</?)([a-zA-Z0-9:-]+) 1087 | beginCaptures 1088 | 1089 | 1 1090 | 1091 | name 1092 | punctuation.definition.tag.begin.html 1093 | 1094 | 2 1095 | 1096 | name 1097 | entity.name.tag.other.html 1098 | 1099 | 1100 | end 1101 | (>) 1102 | endCaptures 1103 | 1104 | 1 1105 | 1106 | name 1107 | punctuation.definition.tag.end.html 1108 | 1109 | 1110 | name 1111 | meta.tag.other.html 1112 | patterns 1113 | 1114 | 1115 | include 1116 | #tag-stuff 1117 | 1118 | 1119 | 1120 | 1121 | include 1122 | #entities 1123 | 1124 | 1125 | match 1126 | <> 1127 | name 1128 | invalid.illegal.incomplete.html 1129 | 1130 | 1131 | match 1132 | < 1133 | name 1134 | invalid.illegal.bad-angle-bracket.html 1135 | 1136 | 1137 | repository 1138 | 1139 | entities 1140 | 1141 | patterns 1142 | 1143 | 1144 | captures 1145 | 1146 | 1 1147 | 1148 | name 1149 | punctuation.definition.entity.html 1150 | 1151 | 3 1152 | 1153 | name 1154 | punctuation.definition.entity.html 1155 | 1156 | 1157 | match 1158 | (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;) 1159 | name 1160 | constant.character.entity.html 1161 | 1162 | 1163 | match 1164 | & 1165 | name 1166 | invalid.illegal.bad-ampersand.html 1167 | 1168 | 1169 | 1170 | string-double-quoted 1171 | 1172 | begin 1173 | " 1174 | beginCaptures 1175 | 1176 | 0 1177 | 1178 | name 1179 | punctuation.definition.string.begin.html 1180 | 1181 | 1182 | end 1183 | " 1184 | endCaptures 1185 | 1186 | 0 1187 | 1188 | name 1189 | punctuation.definition.string.end.html 1190 | 1191 | 1192 | name 1193 | string.quoted.double.html 1194 | patterns 1195 | 1196 | 1197 | include 1198 | #vue-interpolations 1199 | 1200 | 1201 | include 1202 | #entities 1203 | 1204 | 1205 | 1206 | string-single-quoted 1207 | 1208 | begin 1209 | ' 1210 | beginCaptures 1211 | 1212 | 0 1213 | 1214 | name 1215 | punctuation.definition.string.begin.html 1216 | 1217 | 1218 | end 1219 | ' 1220 | endCaptures 1221 | 1222 | 0 1223 | 1224 | name 1225 | punctuation.definition.string.end.html 1226 | 1227 | 1228 | name 1229 | string.quoted.single.html 1230 | patterns 1231 | 1232 | 1233 | include 1234 | #vue-interpolations 1235 | 1236 | 1237 | include 1238 | #entities 1239 | 1240 | 1241 | 1242 | tag-generic-attribute 1243 | 1244 | match 1245 | \b([a-zA-Z\-:]+) 1246 | name 1247 | entity.other.attribute-name.html 1248 | 1249 | tag-id-attribute 1250 | 1251 | begin 1252 | \b(id)\b\s*(=) 1253 | captures 1254 | 1255 | 1 1256 | 1257 | name 1258 | entity.other.attribute-name.id.html 1259 | 1260 | 2 1261 | 1262 | name 1263 | punctuation.separator.key-value.html 1264 | 1265 | 1266 | end 1267 | (?<='|") 1268 | name 1269 | meta.attribute-with-value.id.html 1270 | patterns 1271 | 1272 | 1273 | begin 1274 | " 1275 | beginCaptures 1276 | 1277 | 0 1278 | 1279 | name 1280 | punctuation.definition.string.begin.html 1281 | 1282 | 1283 | contentName 1284 | meta.toc-list.id.html 1285 | end 1286 | " 1287 | endCaptures 1288 | 1289 | 0 1290 | 1291 | name 1292 | punctuation.definition.string.end.html 1293 | 1294 | 1295 | name 1296 | string.quoted.double.html 1297 | patterns 1298 | 1299 | 1300 | include 1301 | #vue-interpolations 1302 | 1303 | 1304 | include 1305 | #entities 1306 | 1307 | 1308 | 1309 | 1310 | begin 1311 | ' 1312 | beginCaptures 1313 | 1314 | 0 1315 | 1316 | name 1317 | punctuation.definition.string.begin.html 1318 | 1319 | 1320 | contentName 1321 | meta.toc-list.id.html 1322 | end 1323 | ' 1324 | endCaptures 1325 | 1326 | 0 1327 | 1328 | name 1329 | punctuation.definition.string.end.html 1330 | 1331 | 1332 | name 1333 | string.quoted.single.html 1334 | patterns 1335 | 1336 | 1337 | include 1338 | #vue-interpolations 1339 | 1340 | 1341 | include 1342 | #entities 1343 | 1344 | 1345 | 1346 | 1347 | 1348 | tag-stuff 1349 | 1350 | patterns 1351 | 1352 | 1353 | include 1354 | #vue-directives 1355 | 1356 | 1357 | include 1358 | #tag-id-attribute 1359 | 1360 | 1361 | include 1362 | #tag-generic-attribute 1363 | 1364 | 1365 | include 1366 | #string-double-quoted 1367 | 1368 | 1369 | include 1370 | #string-single-quoted 1371 | 1372 | 1373 | 1374 | vue-directives 1375 | 1376 | begin 1377 | (?:\b(v-)|(:|@))([a-zA-Z\-]+)(?:\:([a-zA-Z\-]+))?(?:\.([a-zA-Z\-]+))*\s*(=) 1378 | captures 1379 | 1380 | 1 1381 | 1382 | name 1383 | entity.other.attribute-name.html 1384 | 1385 | 2 1386 | 1387 | name 1388 | punctuation.separator.key-value.html 1389 | 1390 | 3 1391 | 1392 | name 1393 | entity.other.attribute-name.html 1394 | 1395 | 4 1396 | 1397 | name 1398 | entity.other.attribute-name.html 1399 | 1400 | 5 1401 | 1402 | name 1403 | entity.other.attribute-name.html 1404 | 1405 | 6 1406 | 1407 | name 1408 | punctuation.separator.key-value.html 1409 | 1410 | 1411 | end 1412 | (?<='|") 1413 | name 1414 | meta.directive.vue 1415 | patterns 1416 | 1417 | 1418 | begin 1419 | " 1420 | beginCaptures 1421 | 1422 | 0 1423 | 1424 | name 1425 | punctuation.definition.string.begin.html 1426 | 1427 | 1428 | end 1429 | " 1430 | endCaptures 1431 | 1432 | 0 1433 | 1434 | name 1435 | punctuation.definition.string.end.html 1436 | 1437 | 1438 | name 1439 | source.directive.vue 1440 | patterns 1441 | 1442 | 1443 | include 1444 | source.js 1445 | 1446 | 1447 | 1448 | 1449 | begin 1450 | ' 1451 | beginCaptures 1452 | 1453 | 0 1454 | 1455 | name 1456 | punctuation.definition.string.begin.html 1457 | 1458 | 1459 | end 1460 | ' 1461 | endCaptures 1462 | 1463 | 0 1464 | 1465 | name 1466 | punctuation.definition.string.end.html 1467 | 1468 | 1469 | name 1470 | source.directive.vue 1471 | patterns 1472 | 1473 | 1474 | include 1475 | source.js 1476 | 1477 | 1478 | 1479 | 1480 | 1481 | vue-interpolations 1482 | 1483 | patterns 1484 | 1485 | 1486 | begin 1487 | \{\{\{? 1488 | beginCaptures 1489 | 1490 | 0 1491 | 1492 | name 1493 | punctuation.definition.generic.begin.html 1494 | 1495 | 1496 | end 1497 | \}\}\}? 1498 | endCaptures 1499 | 1500 | 0 1501 | 1502 | name 1503 | punctuation.definition.generic.end.html 1504 | 1505 | 1506 | name 1507 | expression.embbeded.vue 1508 | patterns 1509 | 1510 | 1511 | include 1512 | source.js 1513 | 1514 | 1515 | 1516 | 1517 | 1518 | 1519 | scopeName 1520 | text.html.vue 1521 | uuid 1522 | 5512c10d-4cc5-434c-b8fc-53b912f55ab3 1523 | 1524 | 1525 | --------------------------------------------------------------------------------