tm-grammars 1.26.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,13 @@
5
5
  "cshtml"
6
6
  ],
7
7
  "injections": {
8
+ "source.cs": {
9
+ "patterns": [
10
+ {
11
+ "include": "#inline-template"
12
+ }
13
+ ]
14
+ },
8
15
  "string.quoted.double.html": {
9
16
  "patterns": [
10
17
  {
@@ -132,7 +139,7 @@
132
139
  "name": "keyword.control.try.catch.cs"
133
140
  }
134
141
  },
135
- "end": "(?<=})",
142
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
136
143
  "name": "meta.statement.catch.razor",
137
144
  "patterns": [
138
145
  {
@@ -362,7 +369,7 @@
362
369
  "name": "keyword.control.loop.do.cs"
363
370
  }
364
371
  },
365
- "end": "(?<=})",
372
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
366
373
  "name": "meta.statement.do.razor",
367
374
  "patterns": [
368
375
  {
@@ -390,7 +397,7 @@
390
397
  "name": "keyword.control.loop.do.cs"
391
398
  }
392
399
  },
393
- "end": "(?<=})",
400
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
394
401
  "name": "meta.statement.do.razor",
395
402
  "patterns": [
396
403
  {
@@ -414,7 +421,7 @@
414
421
  "name": "keyword.control.conditional.if.cs"
415
422
  }
416
423
  },
417
- "end": "(?<=})",
424
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
418
425
  "name": "meta.statement.else.razor",
419
426
  "patterns": [
420
427
  {
@@ -466,7 +473,7 @@
466
473
  "name": "keyword.control.try.finally.cs"
467
474
  }
468
475
  },
469
- "end": "(?<=})",
476
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
470
477
  "name": "meta.statement.finally.razor",
471
478
  "patterns": [
472
479
  {
@@ -491,7 +498,7 @@
491
498
  "name": "keyword.control.loop.for.cs"
492
499
  }
493
500
  },
494
- "end": "(?<=})",
501
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
495
502
  "name": "meta.statement.for.razor",
496
503
  "patterns": [
497
504
  {
@@ -519,7 +526,7 @@
519
526
  "name": "keyword.control.loop.for.cs"
520
527
  }
521
528
  },
522
- "end": "(?<=})",
529
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
523
530
  "name": "meta.statement.for.razor",
524
531
  "patterns": [
525
532
  {
@@ -612,7 +619,7 @@
612
619
  "name": "keyword.control.loop.foreach.cs"
613
620
  }
614
621
  },
615
- "end": "(?<=})",
622
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
616
623
  "name": "meta.statement.foreach.razor",
617
624
  "patterns": [
618
625
  {
@@ -647,7 +654,7 @@
647
654
  "name": "keyword.control.loop.foreach.cs"
648
655
  }
649
656
  },
650
- "end": "(?<=})",
657
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
651
658
  "name": "meta.statement.foreach.razor",
652
659
  "patterns": [
653
660
  {
@@ -696,7 +703,7 @@
696
703
  "name": "keyword.control.conditional.if.cs"
697
704
  }
698
705
  },
699
- "end": "(?<=})",
706
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
700
707
  "name": "meta.statement.if.razor",
701
708
  "patterns": [
702
709
  {
@@ -724,7 +731,7 @@
724
731
  "name": "keyword.control.conditional.if.cs"
725
732
  }
726
733
  },
727
- "end": "(?<=})",
734
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
728
735
  "name": "meta.statement.if.razor",
729
736
  "patterns": [
730
737
  {
@@ -937,6 +944,111 @@
937
944
  "match": "(@)(inject)\\s*([\\S\\s]+?)?\\s*([_[:alpha:]][_[:alnum:]]*)?\\s*(?=$)",
938
945
  "name": "meta.directive"
939
946
  },
947
+ "inline-template": {
948
+ "patterns": [
949
+ {
950
+ "include": "#inline-template-void-tag"
951
+ },
952
+ {
953
+ "include": "#inline-template-non-void-tag"
954
+ }
955
+ ]
956
+ },
957
+ "inline-template-non-void-tag": {
958
+ "begin": "(@)(<)(!)?([^/>\\s]+)(?=\\s|/?>)",
959
+ "beginCaptures": {
960
+ "1": {
961
+ "patterns": [
962
+ {
963
+ "include": "#transition"
964
+ }
965
+ ]
966
+ },
967
+ "2": {
968
+ "name": "punctuation.definition.tag.begin.html"
969
+ },
970
+ "3": {
971
+ "name": "constant.character.escape.razor.tagHelperOptOut"
972
+ },
973
+ "4": {
974
+ "name": "entity.name.tag.html"
975
+ }
976
+ },
977
+ "end": "(</)(\\4)\\s*(>)|(/>)",
978
+ "endCaptures": {
979
+ "1": {
980
+ "name": "punctuation.definition.tag.begin.html"
981
+ },
982
+ "2": {
983
+ "name": "entity.name.tag.html"
984
+ },
985
+ "3": {
986
+ "name": "punctuation.definition.tag.end.html"
987
+ },
988
+ "4": {
989
+ "name": "punctuation.definition.tag.end.html"
990
+ }
991
+ },
992
+ "patterns": [
993
+ {
994
+ "begin": "(?<=>)(?!$)",
995
+ "end": "(?=</)",
996
+ "patterns": [
997
+ {
998
+ "include": "#inline-template"
999
+ },
1000
+ {
1001
+ "include": "#wellformed-html"
1002
+ },
1003
+ {
1004
+ "include": "#razor-control-structures"
1005
+ }
1006
+ ]
1007
+ },
1008
+ {
1009
+ "include": "#razor-control-structures"
1010
+ },
1011
+ {
1012
+ "include": "text.html.basic#attribute"
1013
+ }
1014
+ ]
1015
+ },
1016
+ "inline-template-void-tag": {
1017
+ "begin": "(?i)(@)(<)(!)?(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)(?=\\s|/?>)",
1018
+ "beginCaptures": {
1019
+ "1": {
1020
+ "patterns": [
1021
+ {
1022
+ "include": "#transition"
1023
+ }
1024
+ ]
1025
+ },
1026
+ "2": {
1027
+ "name": "punctuation.definition.tag.begin.html"
1028
+ },
1029
+ "3": {
1030
+ "name": "constant.character.escape.razor.tagHelperOptOut"
1031
+ },
1032
+ "4": {
1033
+ "name": "entity.name.tag.html"
1034
+ }
1035
+ },
1036
+ "end": "/?>",
1037
+ "endCaptures": {
1038
+ "0": {
1039
+ "name": "punctuation.definition.tag.end.html"
1040
+ }
1041
+ },
1042
+ "name": "meta.tag.structure.$4.void.html",
1043
+ "patterns": [
1044
+ {
1045
+ "include": "#razor-control-structures"
1046
+ },
1047
+ {
1048
+ "include": "text.html.basic#attribute"
1049
+ }
1050
+ ]
1051
+ },
940
1052
  "layout-directive": {
941
1053
  "captures": {
942
1054
  "1": {
@@ -974,7 +1086,7 @@
974
1086
  "name": "keyword.other.lock.cs"
975
1087
  }
976
1088
  },
977
- "end": "(?<=})",
1089
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
978
1090
  "name": "meta.statement.lock.razor",
979
1091
  "patterns": [
980
1092
  {
@@ -1002,7 +1114,7 @@
1002
1114
  "name": "keyword.other.lock.cs"
1003
1115
  }
1004
1116
  },
1005
- "end": "(?<=})",
1117
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
1006
1118
  "name": "meta.statement.lock.razor",
1007
1119
  "patterns": [
1008
1120
  {
@@ -1271,6 +1383,9 @@
1271
1383
  {
1272
1384
  "include": "#text-tag"
1273
1385
  },
1386
+ {
1387
+ "include": "#inline-template"
1388
+ },
1274
1389
  {
1275
1390
  "include": "#wellformed-html"
1276
1391
  },
@@ -1469,7 +1584,7 @@
1469
1584
  "name": "keyword.control.switch.cs"
1470
1585
  }
1471
1586
  },
1472
- "end": "(?<=})",
1587
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
1473
1588
  "name": "meta.statement.switch.razor",
1474
1589
  "patterns": [
1475
1590
  {
@@ -1497,7 +1612,7 @@
1497
1612
  "name": "keyword.control.switch.cs"
1498
1613
  }
1499
1614
  },
1500
- "end": "(?<=})",
1615
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
1501
1616
  "name": "meta.statement.switch.razor",
1502
1617
  "patterns": [
1503
1618
  {
@@ -1618,7 +1733,7 @@
1618
1733
  "name": "keyword.control.try.cs"
1619
1734
  }
1620
1735
  },
1621
- "end": "(?<=})",
1736
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
1622
1737
  "name": "meta.statement.try.razor",
1623
1738
  "patterns": [
1624
1739
  {
@@ -1646,7 +1761,7 @@
1646
1761
  "name": "keyword.control.try.cs"
1647
1762
  }
1648
1763
  },
1649
- "end": "(?<=})",
1764
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
1650
1765
  "name": "meta.statement.try.razor",
1651
1766
  "patterns": [
1652
1767
  {
@@ -1785,7 +1900,7 @@
1785
1900
  "name": "keyword.other.using.cs"
1786
1901
  }
1787
1902
  },
1788
- "end": "(?<=})",
1903
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
1789
1904
  "name": "meta.statement.using.razor",
1790
1905
  "patterns": [
1791
1906
  {
@@ -1813,7 +1928,7 @@
1813
1928
  "name": "keyword.other.using.cs"
1814
1929
  }
1815
1930
  },
1816
- "end": "(?<=})",
1931
+ "end": "(?<=})|(?<=;)|(?=^\\s*})",
1817
1932
  "name": "meta.statement.using.razor",
1818
1933
  "patterns": [
1819
1934
  {
@@ -22,15 +22,26 @@
22
22
  "L:(meta.script.svelte | meta.style.svelte) (meta.lang.ts | meta.lang.typescript) - (meta source)": {
23
23
  "patterns": [
24
24
  {
25
- "begin": "(?<=>)(?!</)",
25
+ "begin": "(?<=>)(?=[^\\n]+</(s(?:cript|tyle))[>\\s])",
26
26
  "contentName": "source.ts",
27
- "end": "(?=</)",
27
+ "end": "(?=</(s(?:cript|tyle))[>\\s])",
28
28
  "name": "meta.embedded.block.svelte",
29
29
  "patterns": [
30
30
  {
31
31
  "include": "source.ts"
32
32
  }
33
33
  ]
34
+ },
35
+ {
36
+ "begin": "(?<=>)(?!</)",
37
+ "contentName": "source.ts",
38
+ "name": "meta.embedded.block.svelte",
39
+ "patterns": [
40
+ {
41
+ "include": "source.ts"
42
+ }
43
+ ],
44
+ "while": "^(?!\\s*</(s(?:cript|tyle))[>\\s])"
34
45
  }
35
46
  ]
36
47
  },
@@ -11,7 +11,7 @@
11
11
  "name": "vue-directives",
12
12
  "patterns": [
13
13
  {
14
- "include": "source.vue#vue-directives"
14
+ "include": "text.html.vue#vue-directives"
15
15
  }
16
16
  ],
17
17
  "scopeName": "vue.directives"
@@ -11,7 +11,7 @@
11
11
  "name": "vue-interpolations",
12
12
  "patterns": [
13
13
  {
14
- "include": "source.vue#vue-interpolations"
14
+ "include": "text.html.vue#vue-interpolations"
15
15
  }
16
16
  ],
17
17
  "scopeName": "vue.interpolations"
package/grammars/vue.json CHANGED
@@ -357,14 +357,24 @@
357
357
  "include": "#tag-stuff"
358
358
  },
359
359
  {
360
- "begin": "(?<=>)",
361
- "end": "(?=</)",
360
+ "begin": "(?<=>)(?=[^\\n]*</script[>\\s])",
361
+ "end": "(?=</script[>\\s])",
362
362
  "name": "source.ts",
363
363
  "patterns": [
364
364
  {
365
365
  "include": "source.ts"
366
366
  }
367
367
  ]
368
+ },
369
+ {
370
+ "begin": "(?<=>)",
371
+ "name": "source.ts",
372
+ "patterns": [
373
+ {
374
+ "include": "source.ts"
375
+ }
376
+ ],
377
+ "while": "^(?!\\s*</script[>\\s])"
368
378
  }
369
379
  ]
370
380
  },
@@ -421,14 +431,24 @@
421
431
  "include": "#tag-stuff"
422
432
  },
423
433
  {
424
- "begin": "(?<=>)",
425
- "end": "(?=</)",
434
+ "begin": "(?<=>)(?=[^\\n]*</script[>\\s])",
435
+ "end": "(?=</script[>\\s])",
426
436
  "name": "source.tsx",
427
437
  "patterns": [
428
438
  {
429
439
  "include": "source.tsx"
430
440
  }
431
441
  ]
442
+ },
443
+ {
444
+ "begin": "(?<=>)",
445
+ "name": "source.tsx",
446
+ "patterns": [
447
+ {
448
+ "include": "source.tsx"
449
+ }
450
+ ],
451
+ "while": "^(?!\\s*</script[>\\s])"
432
452
  }
433
453
  ]
434
454
  },
@@ -679,10 +699,10 @@
679
699
  {
680
700
  "begin": "(?<=>)",
681
701
  "end": "(?=</)",
682
- "name": "source.vue",
702
+ "name": "text.html.vue",
683
703
  "patterns": [
684
704
  {
685
- "include": "source.vue"
705
+ "include": "text.html.vue"
686
706
  }
687
707
  ]
688
708
  }
@@ -738,17 +758,7 @@
738
758
  },
739
759
  "patterns": [
740
760
  {
741
- "include": "#tag-stuff"
742
- },
743
- {
744
- "begin": "(?<=>)",
745
- "end": "(?=</script[>\\s])",
746
- "name": "source.js",
747
- "patterns": [
748
- {
749
- "include": "source.js"
750
- }
751
- ]
761
+ "include": "#multi-line-script-tag-stuff"
752
762
  }
753
763
  ]
754
764
  },
@@ -770,17 +780,7 @@
770
780
  },
771
781
  "patterns": [
772
782
  {
773
- "include": "#tag-stuff"
774
- },
775
- {
776
- "begin": "(?<=>)",
777
- "end": "(?=</style[>\\s])",
778
- "name": "source.css",
779
- "patterns": [
780
- {
781
- "include": "source.css"
782
- }
783
- ]
783
+ "include": "#multi-line-style-tag-stuff"
784
784
  }
785
785
  ]
786
786
  },
@@ -828,6 +828,246 @@
828
828
  }
829
829
  ]
830
830
  },
831
+ "multi-line-script-tag-stuff": {
832
+ "begin": "\\G",
833
+ "end": "(?=</script[>\\s])",
834
+ "patterns": [
835
+ {
836
+ "begin": "\\G(?!\\blang\\s*=\\s*[\"']?(?:tsx??|jsx|coffee)\\b)",
837
+ "end": "(?=\\blang\\s*=\\s*[\"']?(?:tsx??|jsx|coffee)\\b)|(>)",
838
+ "endCaptures": {
839
+ "1": {
840
+ "name": "punctuation.definition.tag.end.html.vue"
841
+ }
842
+ },
843
+ "name": "meta.tag-stuff",
844
+ "patterns": [
845
+ {
846
+ "include": "#vue-directives"
847
+ },
848
+ {
849
+ "include": "text.html.basic#attribute"
850
+ }
851
+ ]
852
+ },
853
+ {
854
+ "begin": "(?=\\blang\\s*=\\s*[\"']?ts\\b)",
855
+ "end": "(?=</script[>\\s])",
856
+ "patterns": [
857
+ {
858
+ "include": "#tag-stuff"
859
+ },
860
+ {
861
+ "begin": "(?<=>)(?=[^\\n]*</script[>\\s])",
862
+ "end": "(?=</script[>\\s])",
863
+ "name": "source.ts",
864
+ "patterns": [
865
+ {
866
+ "include": "source.ts"
867
+ }
868
+ ]
869
+ },
870
+ {
871
+ "begin": "(?<=>)",
872
+ "name": "source.ts",
873
+ "patterns": [
874
+ {
875
+ "include": "source.ts"
876
+ }
877
+ ],
878
+ "while": "^(?!\\s*</script[>\\s])"
879
+ }
880
+ ]
881
+ },
882
+ {
883
+ "begin": "(?=\\blang\\s*=\\s*[\"']?tsx\\b)",
884
+ "end": "(?=</script[>\\s])",
885
+ "patterns": [
886
+ {
887
+ "include": "#tag-stuff"
888
+ },
889
+ {
890
+ "begin": "(?<=>)(?=[^\\n]*</script[>\\s])",
891
+ "end": "(?=</script[>\\s])",
892
+ "name": "source.tsx",
893
+ "patterns": [
894
+ {
895
+ "include": "source.tsx"
896
+ }
897
+ ]
898
+ },
899
+ {
900
+ "begin": "(?<=>)",
901
+ "name": "source.tsx",
902
+ "patterns": [
903
+ {
904
+ "include": "source.tsx"
905
+ }
906
+ ],
907
+ "while": "^(?!\\s*</script[>\\s])"
908
+ }
909
+ ]
910
+ },
911
+ {
912
+ "begin": "(?=\\blang\\s*=\\s*[\"']?jsx\\b)",
913
+ "end": "(?=</script[>\\s])",
914
+ "patterns": [
915
+ {
916
+ "include": "#tag-stuff"
917
+ },
918
+ {
919
+ "begin": "(?<=>)",
920
+ "end": "(?=</script[>\\s])",
921
+ "name": "source.js.jsx",
922
+ "patterns": [
923
+ {
924
+ "include": "source.js.jsx"
925
+ }
926
+ ]
927
+ }
928
+ ]
929
+ },
930
+ {
931
+ "begin": "(?=\\blang\\s*=\\s*[\"']?coffee\\b)",
932
+ "end": "(?=</script[>\\s])",
933
+ "patterns": [
934
+ {
935
+ "include": "#tag-stuff"
936
+ },
937
+ {
938
+ "begin": "(?<=>)",
939
+ "end": "(?=</script[>\\s])",
940
+ "name": "source.coffee",
941
+ "patterns": [
942
+ {
943
+ "include": "source.coffee"
944
+ }
945
+ ]
946
+ }
947
+ ]
948
+ },
949
+ {
950
+ "begin": "(?<=>)",
951
+ "end": "(?=</script[>\\s])",
952
+ "name": "source.js",
953
+ "patterns": [
954
+ {
955
+ "include": "source.js"
956
+ }
957
+ ]
958
+ }
959
+ ]
960
+ },
961
+ "multi-line-style-tag-stuff": {
962
+ "begin": "\\G",
963
+ "end": "(?=</style[>\\s])",
964
+ "patterns": [
965
+ {
966
+ "begin": "\\G(?!\\blang\\s*=\\s*[\"']?(?:scss|stylus|less|postcss)\\b)",
967
+ "end": "(?=\\blang\\s*=\\s*[\"']?(?:scss|stylus|less|postcss)\\b)|(>)",
968
+ "endCaptures": {
969
+ "1": {
970
+ "name": "punctuation.definition.tag.end.html.vue"
971
+ }
972
+ },
973
+ "name": "meta.tag-stuff",
974
+ "patterns": [
975
+ {
976
+ "include": "#vue-directives"
977
+ },
978
+ {
979
+ "include": "text.html.basic#attribute"
980
+ }
981
+ ]
982
+ },
983
+ {
984
+ "begin": "(?=\\blang\\s*=\\s*[\"']?scss\\b)",
985
+ "end": "(?=</style[>\\s])",
986
+ "patterns": [
987
+ {
988
+ "include": "#tag-stuff"
989
+ },
990
+ {
991
+ "begin": "(?<=>)",
992
+ "end": "(?=</style[>\\s])",
993
+ "name": "source.css.scss",
994
+ "patterns": [
995
+ {
996
+ "include": "source.css.scss"
997
+ }
998
+ ]
999
+ }
1000
+ ]
1001
+ },
1002
+ {
1003
+ "begin": "(?=\\blang\\s*=\\s*[\"']?stylus\\b)",
1004
+ "end": "(?=</style[>\\s])",
1005
+ "patterns": [
1006
+ {
1007
+ "include": "#tag-stuff"
1008
+ },
1009
+ {
1010
+ "begin": "(?<=>)",
1011
+ "end": "(?=</style[>\\s])",
1012
+ "name": "source.stylus",
1013
+ "patterns": [
1014
+ {
1015
+ "include": "source.stylus"
1016
+ }
1017
+ ]
1018
+ }
1019
+ ]
1020
+ },
1021
+ {
1022
+ "begin": "(?=\\blang\\s*=\\s*[\"']?less\\b)",
1023
+ "end": "(?=</style[>\\s])",
1024
+ "patterns": [
1025
+ {
1026
+ "include": "#tag-stuff"
1027
+ },
1028
+ {
1029
+ "begin": "(?<=>)",
1030
+ "end": "(?=</style[>\\s])",
1031
+ "name": "source.css.less",
1032
+ "patterns": [
1033
+ {
1034
+ "include": "source.css.less"
1035
+ }
1036
+ ]
1037
+ }
1038
+ ]
1039
+ },
1040
+ {
1041
+ "begin": "(?=\\blang\\s*=\\s*[\"']?postcss\\b)",
1042
+ "end": "(?=</style[>\\s])",
1043
+ "patterns": [
1044
+ {
1045
+ "include": "#tag-stuff"
1046
+ },
1047
+ {
1048
+ "begin": "(?<=>)",
1049
+ "end": "(?=</style[>\\s])",
1050
+ "name": "source.postcss",
1051
+ "patterns": [
1052
+ {
1053
+ "include": "source.postcss"
1054
+ }
1055
+ ]
1056
+ }
1057
+ ]
1058
+ },
1059
+ {
1060
+ "begin": "(?<=>)",
1061
+ "end": "(?=</style[>\\s])",
1062
+ "name": "source.css",
1063
+ "patterns": [
1064
+ {
1065
+ "include": "source.css"
1066
+ }
1067
+ ]
1068
+ }
1069
+ ]
1070
+ },
831
1071
  "self-closing-tag": {
832
1072
  "begin": "(<)([-0-:A-Za-z]+)(?=([^>]+/>))",
833
1073
  "beginCaptures": {
@@ -1308,5 +1548,5 @@
1308
1548
  ]
1309
1549
  }
1310
1550
  },
1311
- "scopeName": "source.vue"
1551
+ "scopeName": "text.html.vue"
1312
1552
  }