tm-grammars 1.23.7 → 1.23.9

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.
@@ -128,21 +128,44 @@
128
128
  "name": "meta.function.environment.songs.latex",
129
129
  "patterns": [
130
130
  {
131
- "begin": "\\\\\\[",
132
- "end": "]",
133
- "name": "meta.chord.block.latex support.class.chord.block.environment.latex",
134
- "patterns": [
135
- {
136
- "include": "$self"
137
- }
138
- ]
131
+ "include": "text.tex.latex#songs-chords"
132
+ }
133
+ ]
134
+ },
135
+ {
136
+ "begin": "\\s*((\\\\)beginsong)(?=\\{)",
137
+ "captures": {
138
+ "1": {
139
+ "name": "support.function.be.latex"
139
140
  },
141
+ "2": {
142
+ "name": "punctuation.definition.function.latex"
143
+ },
144
+ "3": {
145
+ "name": "punctuation.definition.arguments.begin.latex"
146
+ },
147
+ "4": {
148
+ "name": "punctuation.definition.arguments.end.latex"
149
+ }
150
+ },
151
+ "end": "((\\\\)endsong)(?:\\s*\\n)?",
152
+ "name": "meta.function.environment.song.latex",
153
+ "patterns": [
140
154
  {
141
- "match": "\\^",
142
- "name": "meta.chord.block.latex support.class.chord.block.environment.latex"
155
+ "include": "#multiline-arg-no-highlight"
143
156
  },
144
157
  {
145
- "include": "$self"
158
+ "include": "#multiline-optional-arg-no-highlight"
159
+ },
160
+ {
161
+ "begin": "(?:\\G|(?<=[\\]}]))\\s*",
162
+ "contentName": "meta.data.environment.song.latex",
163
+ "end": "\\s*(?=\\\\endsong)",
164
+ "patterns": [
165
+ {
166
+ "include": "text.tex.latex#songs-chords"
167
+ }
168
+ ]
146
169
  }
147
170
  ]
148
171
  },
@@ -2188,7 +2211,7 @@
2188
2211
  "include": "#definition-label"
2189
2212
  },
2190
2213
  {
2191
- "include": "text.tex#math"
2214
+ "include": "text.tex#math-content"
2192
2215
  },
2193
2216
  {
2194
2217
  "include": "$self"
@@ -2222,7 +2245,7 @@
2222
2245
  "include": "#definition-label"
2223
2246
  },
2224
2247
  {
2225
- "include": "text.tex#math"
2248
+ "include": "text.tex#math-content"
2226
2249
  },
2227
2250
  {
2228
2251
  "include": "$self"
@@ -2339,11 +2362,11 @@
2339
2362
  ]
2340
2363
  }
2341
2364
  },
2342
- "contentName": "meta.embedded.internal_only_markdown_latex_combined",
2365
+ "contentName": "meta.embedded.markdown_latex_combined",
2343
2366
  "end": "(\\\\end\\{markdown})",
2344
2367
  "patterns": [
2345
2368
  {
2346
- "include": "text.tex.internal_only_markdown_latex_combined"
2369
+ "include": "text.tex.markdown_latex_combined"
2347
2370
  }
2348
2371
  ]
2349
2372
  },
@@ -2938,7 +2961,7 @@
2938
2961
  "name": "meta.function.verb.latex"
2939
2962
  },
2940
2963
  {
2941
- "begin": "((\\\\)(?:directlua|luadirect))(\\{)",
2964
+ "begin": "((\\\\)(?:directlua|luadirect|luaexec))(\\{)",
2942
2965
  "beginCaptures": {
2943
2966
  "1": {
2944
2967
  "name": "support.function.verb.latex"
@@ -2983,7 +3006,7 @@
2983
3006
  "name": "meta.math.block.latex support.class.math.block.environment.latex",
2984
3007
  "patterns": [
2985
3008
  {
2986
- "include": "text.tex#math"
3009
+ "include": "text.tex#math-content"
2987
3010
  },
2988
3011
  {
2989
3012
  "include": "$self"
@@ -3010,7 +3033,7 @@
3010
3033
  "name": "constant.character.escape.latex"
3011
3034
  },
3012
3035
  {
3013
- "include": "text.tex#math"
3036
+ "include": "text.tex#math-content"
3014
3037
  },
3015
3038
  {
3016
3039
  "include": "$self"
@@ -3037,7 +3060,7 @@
3037
3060
  "name": "constant.character.escape.latex"
3038
3061
  },
3039
3062
  {
3040
- "include": "text.tex#math"
3063
+ "include": "text.tex#math-content"
3041
3064
  },
3042
3065
  {
3043
3066
  "include": "$self"
@@ -3060,7 +3083,7 @@
3060
3083
  "name": "meta.math.block.latex support.class.math.block.environment.latex",
3061
3084
  "patterns": [
3062
3085
  {
3063
- "include": "text.tex#math"
3086
+ "include": "text.tex#math-content"
3064
3087
  },
3065
3088
  {
3066
3089
  "include": "$self"
@@ -3217,6 +3240,26 @@
3217
3240
  }
3218
3241
  ]
3219
3242
  },
3243
+ "multiline-arg-no-highlight": {
3244
+ "begin": "\\G\\{",
3245
+ "beginCaptures": {
3246
+ "0": {
3247
+ "name": "punctuation.definition.arguments.begin.latex"
3248
+ }
3249
+ },
3250
+ "end": "}",
3251
+ "endCaptures": {
3252
+ "0": {
3253
+ "name": "punctuation.definition.arguments.end.latex"
3254
+ }
3255
+ },
3256
+ "name": "meta.parameter.latex",
3257
+ "patterns": [
3258
+ {
3259
+ "include": "$self"
3260
+ }
3261
+ ]
3262
+ },
3220
3263
  "multiline-optional-arg": {
3221
3264
  "begin": "\\G\\[",
3222
3265
  "beginCaptures": {
@@ -3239,7 +3282,7 @@
3239
3282
  ]
3240
3283
  },
3241
3284
  "multiline-optional-arg-no-highlight": {
3242
- "begin": "\\G\\[",
3285
+ "begin": "(?:\\G|(?<=}))\\s*\\[",
3243
3286
  "beginCaptures": {
3244
3287
  "0": {
3245
3288
  "name": "punctuation.definition.arguments.optional.begin.latex"
@@ -3343,6 +3386,27 @@
3343
3386
  "name": "meta.parameter.optional.latex"
3344
3387
  }
3345
3388
  ]
3389
+ },
3390
+ "songs-chords": {
3391
+ "patterns": [
3392
+ {
3393
+ "begin": "\\\\\\[",
3394
+ "end": "]",
3395
+ "name": "meta.chord.block.latex support.class.chord.block.environment.latex",
3396
+ "patterns": [
3397
+ {
3398
+ "include": "$self"
3399
+ }
3400
+ ]
3401
+ },
3402
+ {
3403
+ "match": "\\^",
3404
+ "name": "meta.chord.block.latex support.class.chord.block.environment.latex"
3405
+ },
3406
+ {
3407
+ "include": "$self"
3408
+ }
3409
+ ]
3346
3410
  }
3347
3411
  },
3348
3412
  "scopeName": "text.tex.latex"
package/grammars/php.json CHANGED
@@ -2031,23 +2031,68 @@
2031
2031
  ]
2032
2032
  },
2033
2033
  "instantiation": {
2034
- "begin": "(?i)(new)\\s+(?!class\\b)",
2035
- "beginCaptures": {
2036
- "1": {
2037
- "name": "keyword.other.new.php"
2038
- }
2039
- },
2040
- "end": "(?i)(?=[^a-z0-9_\\x7F-\\x{10FFFF}\\\\])",
2041
2034
  "patterns": [
2042
2035
  {
2043
- "match": "(?i)(parent|static|self)(?![a-z0-9_\\x7F-\\x{10FFFF}])",
2044
- "name": "storage.type.php"
2045
- },
2046
- {
2047
- "include": "#class-name"
2036
+ "captures": {
2037
+ "1": {
2038
+ "name": "keyword.other.new.php"
2039
+ },
2040
+ "2": {
2041
+ "patterns": [
2042
+ {
2043
+ "match": "(?i)(parent|static|self)(?![a-z0-9_\\x7F-\\x{10FFFF}])",
2044
+ "name": "storage.type.php"
2045
+ },
2046
+ {
2047
+ "include": "#class-name"
2048
+ },
2049
+ {
2050
+ "include": "#variable-name"
2051
+ }
2052
+ ]
2053
+ }
2054
+ },
2055
+ "match": "(?i)(new)\\s+(?!class\\b)([$a-z0-9_\\x7F-\\x{10FFFF}\\\\]+)(?![a-z0-9_\\x7F-\\x{10FFFF}\\\\(])"
2048
2056
  },
2049
2057
  {
2050
- "include": "#variable-name"
2058
+ "begin": "(?i)(new)\\s+(?!class\\b)([$a-z0-9_\\x7F-\\x{10FFFF}\\\\]+)\\s*(\\()",
2059
+ "beginCaptures": {
2060
+ "1": {
2061
+ "name": "keyword.other.new.php"
2062
+ },
2063
+ "2": {
2064
+ "patterns": [
2065
+ {
2066
+ "match": "(?i)(parent|static|self)(?![a-z0-9_\\x7F-\\x{10FFFF}])",
2067
+ "name": "storage.type.php"
2068
+ },
2069
+ {
2070
+ "include": "#class-name"
2071
+ },
2072
+ {
2073
+ "include": "#variable-name"
2074
+ }
2075
+ ]
2076
+ },
2077
+ "3": {
2078
+ "name": "punctuation.definition.arguments.begin.bracket.round.php"
2079
+ }
2080
+ },
2081
+ "contentName": "meta.function-call.php",
2082
+ "end": "\\)",
2083
+ "endCaptures": {
2084
+ "0": {
2085
+ "name": "punctuation.definition.arguments.end.bracket.round.php"
2086
+ }
2087
+ },
2088
+ "patterns": [
2089
+ {
2090
+ "include": "#named-arguments"
2091
+ },
2092
+ {
2093
+ "include": "$self"
2094
+ }
2095
+ ]
2051
2096
  }
2052
2097
  ]
2053
2098
  },
@@ -2844,6 +2889,10 @@
2844
2889
  },
2845
2890
  {
2846
2891
  "include": "#php_doc_types"
2892
+ },
2893
+ {
2894
+ "match": "[|\\&]",
2895
+ "name": "punctuation.separator.delimiter.php"
2847
2896
  }
2848
2897
  ]
2849
2898
  },
@@ -2880,19 +2929,11 @@
2880
2929
  {
2881
2930
  "match": "[|\\&]",
2882
2931
  "name": "punctuation.separator.delimiter.php"
2883
- },
2884
- {
2885
- "match": "\\(",
2886
- "name": "punctuation.definition.type.begin.bracket.round.php"
2887
- },
2888
- {
2889
- "match": "\\)",
2890
- "name": "punctuation.definition.type.end.bracket.round.php"
2891
2932
  }
2892
2933
  ]
2893
2934
  }
2894
2935
  },
2895
- "match": "(?i)\\??[a-z_\\x7F-\\x{10FFFF}\\\\][a-z0-9_\\x7F-\\x{10FFFF}\\\\]*([|\\&]\\??[a-z_\\x7F-\\x{10FFFF}\\\\][a-z0-9_\\x7F-\\x{10FFFF}\\\\]*)*"
2936
+ "match": "(?i)\\??[a-z0-9_\\x7F-\\x{10FFFF}\\\\]+([|\\&]\\??[a-z0-9_\\x7F-\\x{10FFFF}\\\\]+)*"
2896
2937
  },
2897
2938
  "php_doc_types_array_multiple": {
2898
2939
  "begin": "\\(",
@@ -2901,7 +2942,7 @@
2901
2942
  "name": "punctuation.definition.type.begin.bracket.round.phpdoc.php"
2902
2943
  }
2903
2944
  },
2904
- "end": "(\\))(\\[])|(?=\\*/)",
2945
+ "end": "(\\))(\\[])?|(?=\\*/)",
2905
2946
  "endCaptures": {
2906
2947
  "1": {
2907
2948
  "name": "punctuation.definition.type.end.bracket.round.phpdoc.php"
@@ -2939,7 +2980,7 @@
2939
2980
  "name": "keyword.other.array.phpdoc.php"
2940
2981
  }
2941
2982
  },
2942
- "match": "(?i)([a-z_\\x7F-\\x{10FFFF}\\\\][a-z0-9_\\x7F-\\x{10FFFF}\\\\]*)(\\[])"
2983
+ "match": "(?i)([a-z0-9_\\x7F-\\x{10FFFF}\\\\]+)(\\[])"
2943
2984
  },
2944
2985
  "regex-double-quoted": {
2945
2986
  "begin": "\"/(?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")",
@@ -60,7 +60,7 @@
60
60
  "name": "variable.other.metavariable.specifier.rust"
61
61
  }
62
62
  },
63
- "match": "(\\$)((crate)|([A-Z][A-Za-z0-9_]*))((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?",
63
+ "match": "(\\$)((crate)|([A-Z]\\w*))(\\s*(:)\\s*(block|expr(?:_2021)?|ident|item|lifetime|literal|meta|pat(?:_param)?|path|stmt|tt|ty|vis)\\b)?",
64
64
  "name": "meta.macro.metavariable.type.rust",
65
65
  "patterns": [
66
66
  {
@@ -83,7 +83,7 @@
83
83
  "name": "variable.other.metavariable.specifier.rust"
84
84
  }
85
85
  },
86
- "match": "(\\$)([a-z][A-Za-z0-9_]*)((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?",
86
+ "match": "(\\$)([a-z]\\w*)(\\s*(:)\\s*(block|expr(?:_2021)?|ident|item|lifetime|literal|meta|pat(?:_param)?|path|stmt|tt|ty|vis)\\b)?",
87
87
  "name": "meta.macro.metavariable.rust",
88
88
  "patterns": [
89
89
  {
package/grammars/tex.json CHANGED
@@ -3,47 +3,54 @@
3
3
  "name": "tex",
4
4
  "patterns": [
5
5
  {
6
- "begin": "(?<=^\\s*)((\\\\)iffalse)(?!\\s*[{}]\\s*\\\\fi)",
6
+ "include": "#iffalse-block"
7
+ },
8
+ {
9
+ "include": "#macro-control"
10
+ },
11
+ {
12
+ "include": "#catcode"
13
+ },
14
+ {
15
+ "include": "#comment"
16
+ },
17
+ {
18
+ "match": "[\\[\\]]",
19
+ "name": "punctuation.definition.brackets.tex"
20
+ },
21
+ {
22
+ "include": "#dollar-math"
23
+ },
24
+ {
25
+ "match": "\\\\\\\\",
26
+ "name": "keyword.control.newline.tex"
27
+ },
28
+ {
29
+ "include": "#macro-general"
30
+ }
31
+ ],
32
+ "repository": {
33
+ "braces": {
34
+ "begin": "(?<!\\\\)\\{",
7
35
  "beginCaptures": {
8
- "1": {
9
- "name": "keyword.control.tex"
10
- },
11
- "2": {
12
- "name": "punctuation.definition.keyword.tex"
36
+ "0": {
37
+ "name": "punctuation.group.begin.tex"
13
38
  }
14
39
  },
15
- "contentName": "comment.line.percentage.tex",
16
- "end": "((\\\\)(?:else|fi))",
40
+ "end": "(?<!\\\\)}",
17
41
  "endCaptures": {
18
- "1": {
19
- "name": "keyword.control.tex"
20
- },
21
- "2": {
22
- "name": "punctuation.definition.keyword.tex"
42
+ "0": {
43
+ "name": "punctuation.group.end.tex"
23
44
  }
24
45
  },
46
+ "name": "meta.group.braces.tex",
25
47
  "patterns": [
26
- {
27
- "include": "#comment"
28
- },
29
48
  {
30
49
  "include": "#braces"
31
- },
32
- {
33
- "include": "#conditionals"
34
50
  }
35
51
  ]
36
52
  },
37
- {
38
- "captures": {
39
- "1": {
40
- "name": "punctuation.definition.keyword.tex"
41
- }
42
- },
43
- "match": "(\\\\)(backmatter|csname|else|endcsname|fi|frontmatter|mainmatter|unless|if(case|cat|csname|defined|dim|eof|false|fontchar|hbox|hmode|inner|mmode|num|odd|true|vbox|vmode|void|x)?)(?![a-zA-Z@])",
44
- "name": "keyword.control.tex"
45
- },
46
- {
53
+ "catcode": {
47
54
  "captures": {
48
55
  "1": {
49
56
  "name": "keyword.control.catcode.tex"
@@ -61,14 +68,50 @@
61
68
  "match": "((\\\\)catcode)`\\\\?.(=)(\\d+)",
62
69
  "name": "meta.catcode.tex"
63
70
  },
64
- {
65
- "include": "#comment"
71
+ "comment": {
72
+ "begin": "(^[ \\t]+)?(?=%)",
73
+ "beginCaptures": {
74
+ "1": {
75
+ "name": "punctuation.whitespace.comment.leading.tex"
76
+ }
77
+ },
78
+ "end": "(?!\\G)",
79
+ "patterns": [
80
+ {
81
+ "begin": "%:?",
82
+ "beginCaptures": {
83
+ "0": {
84
+ "name": "punctuation.definition.comment.tex"
85
+ }
86
+ },
87
+ "end": "$\\n?",
88
+ "name": "comment.line.percentage.tex"
89
+ },
90
+ {
91
+ "begin": "^(%!TEX) (\\S*) =",
92
+ "beginCaptures": {
93
+ "1": {
94
+ "name": "punctuation.definition.comment.tex"
95
+ }
96
+ },
97
+ "end": "$\\n?",
98
+ "name": "comment.line.percentage.directive.tex"
99
+ }
100
+ ]
66
101
  },
67
- {
68
- "match": "[\\[\\]]",
69
- "name": "punctuation.definition.brackets.tex"
102
+ "conditionals": {
103
+ "begin": "(?<=^\\s*)\\\\if[a-z]*",
104
+ "end": "(?<=^\\s*)\\\\fi",
105
+ "patterns": [
106
+ {
107
+ "include": "#comment"
108
+ },
109
+ {
110
+ "include": "#conditionals"
111
+ }
112
+ ]
70
113
  },
71
- {
114
+ "dollar-math": {
72
115
  "begin": "(\\$(?:\\$|))",
73
116
  "beginCaptures": {
74
117
  "1": {
@@ -88,119 +131,95 @@
88
131
  "name": "constant.character.escape.tex"
89
132
  },
90
133
  {
91
- "include": "#math"
134
+ "include": "#math-content"
92
135
  },
93
136
  {
94
137
  "include": "$self"
95
138
  }
96
139
  ]
97
140
  },
98
- {
99
- "match": "\\\\\\\\",
100
- "name": "keyword.control.newline.tex"
101
- },
102
- {
103
- "captures": {
104
- "1": {
105
- "name": "punctuation.definition.function.tex"
106
- }
107
- },
108
- "match": "(\\\\)_*[\\p{Alphabetic}@]+(?:_[\\p{Alphabetic}@]+)*:[NncVvoxefTFpwD]*",
109
- "name": "support.class.general.latex3.tex"
110
- },
111
- {
112
- "captures": {
113
- "1": {
114
- "name": "punctuation.definition.function.tex"
115
- }
116
- },
117
- "match": "(\\.)[\\p{Alphabetic}@]+(?:_[\\p{Alphabetic}@]+)*:[NncVvoxefTFpwD]*",
118
- "name": "support.class.general.latex3.tex"
119
- },
120
- {
121
- "captures": {
122
- "1": {
123
- "name": "punctuation.definition.function.tex"
124
- }
125
- },
126
- "match": "(\\\\)(?:[,;]|[\\p{Alphabetic}@]+)",
127
- "name": "support.function.general.tex"
128
- },
129
- {
130
- "captures": {
141
+ "iffalse-block": {
142
+ "begin": "(?<=^\\s*)((\\\\)iffalse)(?!\\s*[{}]\\s*\\\\fi)",
143
+ "beginCaptures": {
131
144
  "1": {
145
+ "name": "keyword.control.tex"
146
+ },
147
+ "2": {
132
148
  "name": "punctuation.definition.keyword.tex"
133
149
  }
134
150
  },
135
- "match": "(\\\\)[^a-zA-Z@]",
136
- "name": "constant.character.escape.tex"
137
- }
138
- ],
139
- "repository": {
140
- "braces": {
141
- "begin": "(?<!\\\\)\\{",
142
- "beginCaptures": {
143
- "0": {
144
- "name": "punctuation.group.begin.tex"
145
- }
146
- },
147
- "end": "(?<!\\\\)}",
151
+ "contentName": "comment.line.percentage.tex",
152
+ "end": "((\\\\)(?:else|fi))",
148
153
  "endCaptures": {
149
- "0": {
150
- "name": "punctuation.group.end.tex"
154
+ "1": {
155
+ "name": "keyword.control.tex"
156
+ },
157
+ "2": {
158
+ "name": "punctuation.definition.keyword.tex"
151
159
  }
152
160
  },
153
- "name": "meta.group.braces.tex",
154
161
  "patterns": [
162
+ {
163
+ "include": "#comment"
164
+ },
155
165
  {
156
166
  "include": "#braces"
167
+ },
168
+ {
169
+ "include": "#conditionals"
157
170
  }
158
171
  ]
159
172
  },
160
- "comment": {
161
- "begin": "(^[ \\t]+)?(?=%)",
162
- "beginCaptures": {
173
+ "macro-control": {
174
+ "captures": {
163
175
  "1": {
164
- "name": "punctuation.whitespace.comment.leading.tex"
176
+ "name": "punctuation.definition.keyword.tex"
165
177
  }
166
178
  },
167
- "end": "(?!\\G)",
179
+ "match": "(\\\\)(backmatter|csname|else|endcsname|fi|frontmatter|mainmatter|unless|if(case|cat|csname|defined|dim|eof|false|fontchar|hbox|hmode|inner|mmode|num|odd|true|vbox|vmode|void|x)?)(?![a-zA-Z@])",
180
+ "name": "keyword.control.tex"
181
+ },
182
+ "macro-general": {
168
183
  "patterns": [
169
184
  {
170
- "begin": "%:?",
171
- "beginCaptures": {
172
- "0": {
173
- "name": "punctuation.definition.comment.tex"
185
+ "captures": {
186
+ "1": {
187
+ "name": "punctuation.definition.function.tex"
174
188
  }
175
189
  },
176
- "end": "$\\n?",
177
- "name": "comment.line.percentage.tex"
190
+ "match": "(\\\\)_*[\\p{Alphabetic}@]+(?:_[\\p{Alphabetic}@]+)*:[NncVvoxefTFpwD]*",
191
+ "name": "support.class.general.latex3.tex"
178
192
  },
179
193
  {
180
- "begin": "^(%!TEX) (\\S*) =",
181
- "beginCaptures": {
194
+ "captures": {
182
195
  "1": {
183
- "name": "punctuation.definition.comment.tex"
196
+ "name": "punctuation.definition.function.tex"
184
197
  }
185
198
  },
186
- "end": "$\\n?",
187
- "name": "comment.line.percentage.directive.tex"
188
- }
189
- ]
190
- },
191
- "conditionals": {
192
- "begin": "(?<=^\\s*)\\\\if[a-z]*",
193
- "end": "(?<=^\\s*)\\\\fi",
194
- "patterns": [
199
+ "match": "(\\.)[\\p{Alphabetic}@]+(?:_[\\p{Alphabetic}@]+)*:[NncVvoxefTFpwD]*",
200
+ "name": "support.class.general.latex3.tex"
201
+ },
195
202
  {
196
- "include": "#comment"
203
+ "captures": {
204
+ "1": {
205
+ "name": "punctuation.definition.function.tex"
206
+ }
207
+ },
208
+ "match": "(\\\\)(?:[,;]|[\\p{Alphabetic}@]+)",
209
+ "name": "support.function.general.tex"
197
210
  },
198
211
  {
199
- "include": "#conditionals"
212
+ "captures": {
213
+ "1": {
214
+ "name": "punctuation.definition.keyword.tex"
215
+ }
216
+ },
217
+ "match": "(\\\\)[^a-zA-Z@]",
218
+ "name": "constant.character.escape.tex"
200
219
  }
201
220
  ]
202
221
  },
203
- "math": {
222
+ "math-content": {
204
223
  "patterns": [
205
224
  {
206
225
  "begin": "((\\\\)(?:text|mbox))(\\{)",
@@ -224,7 +243,7 @@
224
243
  },
225
244
  "patterns": [
226
245
  {
227
- "include": "#math"
246
+ "include": "#math-content"
228
247
  },
229
248
  {
230
249
  "include": "$self"
@@ -336,7 +355,7 @@
336
355
  "name": "constant.numeric.math.tex"
337
356
  },
338
357
  {
339
- "match": "[+*/_^-]",
358
+ "match": "[+*/-]|(?<!\\^)\\^(?!\\^)|(?<!_)_(?!_)",
340
359
  "name": "punctuation.math.operator.tex"
341
360
  }
342
361
  ]