tm-grammars 0.0.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.
Files changed (181) hide show
  1. package/LICENSE +22 -0
  2. package/NOTICE +6565 -0
  3. package/README.md +211 -0
  4. package/grammars/abap.json +380 -0
  5. package/grammars/actionscript-3.json +951 -0
  6. package/grammars/ada.json +3874 -0
  7. package/grammars/apache.json +562 -0
  8. package/grammars/apex.json +3203 -0
  9. package/grammars/apl.json +1479 -0
  10. package/grammars/applescript.json +1406 -0
  11. package/grammars/ara.json +428 -0
  12. package/grammars/asm.json +1741 -0
  13. package/grammars/astro.json +776 -0
  14. package/grammars/awk.json +388 -0
  15. package/grammars/ballerina.json +3768 -0
  16. package/grammars/bat.json +783 -0
  17. package/grammars/beancount.json +831 -0
  18. package/grammars/berry.json +172 -0
  19. package/grammars/bibtex.json +315 -0
  20. package/grammars/bicep.json +239 -0
  21. package/grammars/blade.json +3870 -0
  22. package/grammars/c.json +3552 -0
  23. package/grammars/cadence.json +738 -0
  24. package/grammars/clarity.json +877 -0
  25. package/grammars/clojure.json +426 -0
  26. package/grammars/cmake.json +143 -0
  27. package/grammars/cobol.json +1124 -0
  28. package/grammars/codeql.json +1540 -0
  29. package/grammars/coffee.json +1311 -0
  30. package/grammars/cpp-macro.json +9498 -0
  31. package/grammars/cpp.json +16635 -0
  32. package/grammars/crystal.json +1866 -0
  33. package/grammars/csharp.json +5722 -0
  34. package/grammars/css.json +1860 -0
  35. package/grammars/csv.json +46 -0
  36. package/grammars/cue.json +1128 -0
  37. package/grammars/cypher.json +353 -0
  38. package/grammars/d.json +3185 -0
  39. package/grammars/dart.json +522 -0
  40. package/grammars/dax.json +185 -0
  41. package/grammars/diff.json +155 -0
  42. package/grammars/docker.json +97 -0
  43. package/grammars/dream-maker.json +640 -0
  44. package/grammars/elixir.json +1014 -0
  45. package/grammars/elm.json +751 -0
  46. package/grammars/erb.json +156 -0
  47. package/grammars/erlang.json +1757 -0
  48. package/grammars/fish.json +189 -0
  49. package/grammars/fsharp.json +1831 -0
  50. package/grammars/gdresource.json +290 -0
  51. package/grammars/gdscript.json +969 -0
  52. package/grammars/gdshader.json +405 -0
  53. package/grammars/gherkin.json +133 -0
  54. package/grammars/git-commit.json +85 -0
  55. package/grammars/git-rebase.json +56 -0
  56. package/grammars/glimmer-js.json +98 -0
  57. package/grammars/glimmer-ts.json +98 -0
  58. package/grammars/glsl.json +57 -0
  59. package/grammars/gnuplot.json +892 -0
  60. package/grammars/go.json +1012 -0
  61. package/grammars/graphql.json +1295 -0
  62. package/grammars/groovy.json +1378 -0
  63. package/grammars/hack.json +2650 -0
  64. package/grammars/haml.json +598 -0
  65. package/grammars/handlebars.json +848 -0
  66. package/grammars/haskell.json +2431 -0
  67. package/grammars/hcl.json +787 -0
  68. package/grammars/hjson.json +821 -0
  69. package/grammars/hlsl.json +212 -0
  70. package/grammars/html.json +93 -0
  71. package/grammars/imba.json +2696 -0
  72. package/grammars/ini.json +108 -0
  73. package/grammars/java.json +1885 -0
  74. package/grammars/javascript.json +5984 -0
  75. package/grammars/jinja-html.json +16 -0
  76. package/grammars/jinja.json +345 -0
  77. package/grammars/jison.json +715 -0
  78. package/grammars/jsdoc.json +21 -0
  79. package/grammars/json.json +208 -0
  80. package/grammars/json5.json +244 -0
  81. package/grammars/jsonc.json +208 -0
  82. package/grammars/jsonl.json +208 -0
  83. package/grammars/jsonnet.json +211 -0
  84. package/grammars/jssm.json +159 -0
  85. package/grammars/jsx.json +5984 -0
  86. package/grammars/julia.json +1061 -0
  87. package/grammars/kotlin.json +580 -0
  88. package/grammars/kusto.json +687 -0
  89. package/grammars/latex.json +2395 -0
  90. package/grammars/less.json +5012 -0
  91. package/grammars/liquid.json +990 -0
  92. package/grammars/lisp.json +121 -0
  93. package/grammars/logo.json +55 -0
  94. package/grammars/lua.json +956 -0
  95. package/grammars/make.json +629 -0
  96. package/grammars/markdown.json +3066 -0
  97. package/grammars/marko.json +1344 -0
  98. package/grammars/matlab.json +1131 -0
  99. package/grammars/mdc.json +571 -0
  100. package/grammars/mdx.json +5629 -0
  101. package/grammars/mermaid.json +1382 -0
  102. package/grammars/mojo.json +4153 -0
  103. package/grammars/narrat.json +227 -0
  104. package/grammars/nextflow.json +298 -0
  105. package/grammars/nginx.json +2121 -0
  106. package/grammars/nim.json +1522 -0
  107. package/grammars/nix.json +1200 -0
  108. package/grammars/nushell.json +1047 -0
  109. package/grammars/objective-c.json +3750 -0
  110. package/grammars/objective-cpp.json +7242 -0
  111. package/grammars/ocaml.json +2967 -0
  112. package/grammars/pascal.json +154 -0
  113. package/grammars/perl.json +2971 -0
  114. package/grammars/php.json +4024 -0
  115. package/grammars/plsql.json +241 -0
  116. package/grammars/postcss.json +377 -0
  117. package/grammars/powerquery.json +349 -0
  118. package/grammars/powershell.json +1024 -0
  119. package/grammars/prisma.json +443 -0
  120. package/grammars/prolog.json +298 -0
  121. package/grammars/proto.json +507 -0
  122. package/grammars/pug.json +1033 -0
  123. package/grammars/puppet.json +777 -0
  124. package/grammars/purescript.json +871 -0
  125. package/grammars/python.json +4208 -0
  126. package/grammars/r.json +637 -0
  127. package/grammars/raku.json +310 -0
  128. package/grammars/razor.json +1813 -0
  129. package/grammars/reg.json +136 -0
  130. package/grammars/rel.json +200 -0
  131. package/grammars/riscv.json +298 -0
  132. package/grammars/rst.json +734 -0
  133. package/grammars/ruby.json +2769 -0
  134. package/grammars/rust.json +1171 -0
  135. package/grammars/sas.json +302 -0
  136. package/grammars/sass.json +618 -0
  137. package/grammars/scala.json +1313 -0
  138. package/grammars/scheme.json +384 -0
  139. package/grammars/scss.json +1874 -0
  140. package/grammars/shaderlab.json +199 -0
  141. package/grammars/shellscript.json +2025 -0
  142. package/grammars/shellsession.json +33 -0
  143. package/grammars/smalltalk.json +235 -0
  144. package/grammars/solidity.json +1210 -0
  145. package/grammars/sparql.json +45 -0
  146. package/grammars/splunk.json +91 -0
  147. package/grammars/sql.json +631 -0
  148. package/grammars/ssh-config.json +88 -0
  149. package/grammars/stata.json +3050 -0
  150. package/grammars/stylus.json +1208 -0
  151. package/grammars/svelte.json +1171 -0
  152. package/grammars/swift.json +4203 -0
  153. package/grammars/system-verilog.json +1063 -0
  154. package/grammars/tasl.json +292 -0
  155. package/grammars/tcl.json +291 -0
  156. package/grammars/tex.json +281 -0
  157. package/grammars/toml.json +431 -0
  158. package/grammars/tsx.json +5984 -0
  159. package/grammars/turtle.json +261 -0
  160. package/grammars/twig.json +1394 -0
  161. package/grammars/typescript.json +5735 -0
  162. package/grammars/v.json +1001 -0
  163. package/grammars/vb.json +232 -0
  164. package/grammars/verilog.json +305 -0
  165. package/grammars/vhdl.json +1484 -0
  166. package/grammars/viml.json +445 -0
  167. package/grammars/vue-html.json +559 -0
  168. package/grammars/vue.json +1237 -0
  169. package/grammars/vyper.json +5415 -0
  170. package/grammars/wasm.json +831 -0
  171. package/grammars/wenyan.json +129 -0
  172. package/grammars/wgsl.json +391 -0
  173. package/grammars/wolfram.json +2370 -0
  174. package/grammars/xml.json +382 -0
  175. package/grammars/xsl.json +89 -0
  176. package/grammars/yaml.json +616 -0
  177. package/grammars/zenscript.json +257 -0
  178. package/grammars/zig.json +312 -0
  179. package/index.d.ts +18 -0
  180. package/index.js +2165 -0
  181. package/package.json +46 -0
@@ -0,0 +1,2395 @@
1
+ {
2
+ "displayName": "LaTeX",
3
+ "name": "latex",
4
+ "patterns": [
5
+ {
6
+ "comment": "This scope identifies partially typed commands such as `\\tab`. We use this to trigger “Command Completion” only when it makes sense.",
7
+ "match": "(?<=\\\\[\\w@]|\\\\[\\w@]{2}|\\\\[\\w@]{3}|\\\\[\\w@]{4}|\\\\[\\w@]{5}|\\\\[\\w@]{6})\\s",
8
+ "name": "meta.space-after-command.latex"
9
+ },
10
+ {
11
+ "begin": "((\\\\)(?:usepackage|documentclass))\\b(?=\\[|\\{)",
12
+ "beginCaptures": {
13
+ "1": {
14
+ "name": "keyword.control.preamble.latex"
15
+ },
16
+ "2": {
17
+ "name": "punctuation.definition.function.latex"
18
+ }
19
+ },
20
+ "end": "(?<=\\})",
21
+ "endCaptures": {
22
+ "0": {
23
+ "name": "punctuation.definition.arguments.end.latex"
24
+ }
25
+ },
26
+ "name": "meta.preamble.latex",
27
+ "patterns": [
28
+ {
29
+ "include": "#multiline-optional-arg"
30
+ },
31
+ {
32
+ "begin": "((?:\\G|(?<=\\]))\\{)",
33
+ "beginCaptures": {
34
+ "0": {
35
+ "name": "punctuation.definition.arguments.begin.latex"
36
+ }
37
+ },
38
+ "contentName": "support.class.latex",
39
+ "end": "(\\})",
40
+ "endCaptures": {
41
+ "0": {
42
+ "name": "punctuation.definition.arguments.end.latex"
43
+ }
44
+ },
45
+ "patterns": [
46
+ {
47
+ "include": "$self"
48
+ }
49
+ ]
50
+ }
51
+ ]
52
+ },
53
+ {
54
+ "begin": "((\\\\)(?:include|input))(\\{)",
55
+ "beginCaptures": {
56
+ "1": {
57
+ "name": "keyword.control.include.latex"
58
+ },
59
+ "2": {
60
+ "name": "punctuation.definition.function.latex"
61
+ },
62
+ "3": {
63
+ "name": "punctuation.definition.arguments.begin.latex"
64
+ }
65
+ },
66
+ "end": "\\}",
67
+ "endCaptures": {
68
+ "0": {
69
+ "name": "punctuation.definition.arguments.end.latex"
70
+ }
71
+ },
72
+ "name": "meta.include.latex",
73
+ "patterns": [
74
+ {
75
+ "include": "$self"
76
+ }
77
+ ]
78
+ },
79
+ {
80
+ "begin": "((\\\\)((?:sub){0,2}section|(?:sub)?paragraph|chapter|part|addpart|addchap|addsec|minisec|frametitle)(?:\\*)?)((?:\\[[^\\[]*?\\]){0,2})(\\{)",
81
+ "beginCaptures": {
82
+ "1": {
83
+ "name": "support.function.section.latex"
84
+ },
85
+ "2": {
86
+ "name": "punctuation.definition.function.latex"
87
+ },
88
+ "4": {
89
+ "patterns": [
90
+ {
91
+ "include": "#optional-arg"
92
+ }
93
+ ]
94
+ },
95
+ "5": {
96
+ "name": "punctuation.definition.arguments.begin.latex"
97
+ }
98
+ },
99
+ "comment": "this works OK with all kinds of crazy stuff as long as section is one line",
100
+ "contentName": "entity.name.section.latex",
101
+ "end": "\\}",
102
+ "endCaptures": {
103
+ "0": {
104
+ "name": "punctuation.definition.arguments.end.latex"
105
+ }
106
+ },
107
+ "name": "meta.function.section.$3.latex",
108
+ "patterns": [
109
+ {
110
+ "include": "text.tex#braces"
111
+ },
112
+ {
113
+ "include": "$base"
114
+ }
115
+ ]
116
+ },
117
+ {
118
+ "begin": "((?:\\s*)\\\\begin\\{songs\\}\\{.*\\})",
119
+ "captures": {
120
+ "1": {
121
+ "patterns": [
122
+ {
123
+ "include": "#begin-env-tokenizer"
124
+ }
125
+ ]
126
+ }
127
+ },
128
+ "contentName": "meta.data.environment.songs.latex",
129
+ "end": "(\\\\end\\{songs\\}(?:\\s*\\n)?)",
130
+ "name": "meta.function.environment.songs.latex",
131
+ "patterns": [
132
+ {
133
+ "begin": "\\\\\\[",
134
+ "end": "\\]",
135
+ "name": "meta.chord.block.latex support.class.chord.block.environment.latex",
136
+ "patterns": [
137
+ {
138
+ "include": "$base"
139
+ }
140
+ ]
141
+ },
142
+ {
143
+ "match": "\\^",
144
+ "name": "meta.chord.block.latex support.class.chord.block.environment.latex"
145
+ },
146
+ {
147
+ "include": "$self"
148
+ }
149
+ ]
150
+ },
151
+ {
152
+ "begin": "(^\\s*)?\\\\begin\\{(lstlisting|minted|pyglist)\\}(?=\\[|\\{)",
153
+ "captures": {
154
+ "0": {
155
+ "patterns": [
156
+ {
157
+ "include": "#begin-env-tokenizer"
158
+ }
159
+ ]
160
+ }
161
+ },
162
+ "end": "\\\\end\\{(?:minted|lstlisting|pyglist)\\}",
163
+ "patterns": [
164
+ {
165
+ "include": "#multiline-optional-arg-no-highlight"
166
+ },
167
+ {
168
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:c|cpp))(\\})",
169
+ "beginCaptures": {
170
+ "1": {
171
+ "name": "punctuation.definition.arguments.begin.latex"
172
+ },
173
+ "2": {
174
+ "name": "variable.parameter.function.latex"
175
+ },
176
+ "3": {
177
+ "name": "punctuation.definition.arguments.end.latex"
178
+ }
179
+ },
180
+ "contentName": "source.cpp.embedded.latex",
181
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
182
+ "patterns": [
183
+ {
184
+ "include": "source.cpp.embedded.latex"
185
+ }
186
+ ]
187
+ },
188
+ {
189
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:asy|asymptote))(\\})",
190
+ "beginCaptures": {
191
+ "1": {
192
+ "name": "punctuation.definition.arguments.begin.latex"
193
+ },
194
+ "2": {
195
+ "name": "variable.parameter.function.latex"
196
+ },
197
+ "3": {
198
+ "name": "punctuation.definition.arguments.end.latex"
199
+ }
200
+ },
201
+ "contentName": "source.asy",
202
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
203
+ "patterns": [
204
+ {
205
+ "include": "source.asy"
206
+ }
207
+ ]
208
+ },
209
+ {
210
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:css))(\\})",
211
+ "beginCaptures": {
212
+ "1": {
213
+ "name": "punctuation.definition.arguments.begin.latex"
214
+ },
215
+ "2": {
216
+ "name": "variable.parameter.function.latex"
217
+ },
218
+ "3": {
219
+ "name": "punctuation.definition.arguments.end.latex"
220
+ }
221
+ },
222
+ "contentName": "source.css",
223
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
224
+ "patterns": [
225
+ {
226
+ "include": "source.css"
227
+ }
228
+ ]
229
+ },
230
+ {
231
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:hs|haskell))(\\})",
232
+ "beginCaptures": {
233
+ "1": {
234
+ "name": "punctuation.definition.arguments.begin.latex"
235
+ },
236
+ "2": {
237
+ "name": "variable.parameter.function.latex"
238
+ },
239
+ "3": {
240
+ "name": "punctuation.definition.arguments.end.latex"
241
+ }
242
+ },
243
+ "contentName": "source.haskell",
244
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
245
+ "patterns": [
246
+ {
247
+ "include": "source.haskell"
248
+ }
249
+ ]
250
+ },
251
+ {
252
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:html))(\\})",
253
+ "beginCaptures": {
254
+ "1": {
255
+ "name": "punctuation.definition.arguments.begin.latex"
256
+ },
257
+ "2": {
258
+ "name": "variable.parameter.function.latex"
259
+ },
260
+ "3": {
261
+ "name": "punctuation.definition.arguments.end.latex"
262
+ }
263
+ },
264
+ "contentName": "text.html",
265
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
266
+ "patterns": [
267
+ {
268
+ "include": "text.html.basic"
269
+ }
270
+ ]
271
+ },
272
+ {
273
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:xml))(\\})",
274
+ "beginCaptures": {
275
+ "1": {
276
+ "name": "punctuation.definition.arguments.begin.latex"
277
+ },
278
+ "2": {
279
+ "name": "variable.parameter.function.latex"
280
+ },
281
+ "3": {
282
+ "name": "punctuation.definition.arguments.end.latex"
283
+ }
284
+ },
285
+ "contentName": "text.xml",
286
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
287
+ "patterns": [
288
+ {
289
+ "include": "text.xml"
290
+ }
291
+ ]
292
+ },
293
+ {
294
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:java))(\\})",
295
+ "beginCaptures": {
296
+ "1": {
297
+ "name": "punctuation.definition.arguments.begin.latex"
298
+ },
299
+ "2": {
300
+ "name": "variable.parameter.function.latex"
301
+ },
302
+ "3": {
303
+ "name": "punctuation.definition.arguments.end.latex"
304
+ }
305
+ },
306
+ "contentName": "source.java",
307
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
308
+ "patterns": [
309
+ {
310
+ "include": "source.java"
311
+ }
312
+ ]
313
+ },
314
+ {
315
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:lua))(\\})",
316
+ "beginCaptures": {
317
+ "1": {
318
+ "name": "punctuation.definition.arguments.begin.latex"
319
+ },
320
+ "2": {
321
+ "name": "variable.parameter.function.latex"
322
+ },
323
+ "3": {
324
+ "name": "punctuation.definition.arguments.end.latex"
325
+ }
326
+ },
327
+ "contentName": "source.lua",
328
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
329
+ "patterns": [
330
+ {
331
+ "include": "source.lua"
332
+ }
333
+ ]
334
+ },
335
+ {
336
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:jl|julia))(\\})",
337
+ "beginCaptures": {
338
+ "1": {
339
+ "name": "punctuation.definition.arguments.begin.latex"
340
+ },
341
+ "2": {
342
+ "name": "variable.parameter.function.latex"
343
+ },
344
+ "3": {
345
+ "name": "punctuation.definition.arguments.end.latex"
346
+ }
347
+ },
348
+ "contentName": "source.julia",
349
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
350
+ "patterns": [
351
+ {
352
+ "include": "source.julia"
353
+ }
354
+ ]
355
+ },
356
+ {
357
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:rb|ruby))(\\})",
358
+ "beginCaptures": {
359
+ "1": {
360
+ "name": "punctuation.definition.arguments.begin.latex"
361
+ },
362
+ "2": {
363
+ "name": "variable.parameter.function.latex"
364
+ },
365
+ "3": {
366
+ "name": "punctuation.definition.arguments.end.latex"
367
+ }
368
+ },
369
+ "contentName": "source.ruby",
370
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
371
+ "patterns": [
372
+ {
373
+ "include": "source.ruby"
374
+ }
375
+ ]
376
+ },
377
+ {
378
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:js|javascript))(\\})",
379
+ "beginCaptures": {
380
+ "1": {
381
+ "name": "punctuation.definition.arguments.begin.latex"
382
+ },
383
+ "2": {
384
+ "name": "variable.parameter.function.latex"
385
+ },
386
+ "3": {
387
+ "name": "punctuation.definition.arguments.end.latex"
388
+ }
389
+ },
390
+ "contentName": "source.js",
391
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
392
+ "patterns": [
393
+ {
394
+ "include": "source.js"
395
+ }
396
+ ]
397
+ },
398
+ {
399
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:ts|typescript))(\\})",
400
+ "beginCaptures": {
401
+ "1": {
402
+ "name": "punctuation.definition.arguments.begin.latex"
403
+ },
404
+ "2": {
405
+ "name": "variable.parameter.function.latex"
406
+ },
407
+ "3": {
408
+ "name": "punctuation.definition.arguments.end.latex"
409
+ }
410
+ },
411
+ "contentName": "source.ts",
412
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
413
+ "patterns": [
414
+ {
415
+ "include": "source.ts"
416
+ }
417
+ ]
418
+ },
419
+ {
420
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:py|python))(\\})",
421
+ "beginCaptures": {
422
+ "1": {
423
+ "name": "punctuation.definition.arguments.begin.latex"
424
+ },
425
+ "2": {
426
+ "name": "variable.parameter.function.latex"
427
+ },
428
+ "3": {
429
+ "name": "punctuation.definition.arguments.end.latex"
430
+ }
431
+ },
432
+ "contentName": "source.python",
433
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
434
+ "patterns": [
435
+ {
436
+ "include": "source.python"
437
+ }
438
+ ]
439
+ },
440
+ {
441
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:yaml))(\\})",
442
+ "beginCaptures": {
443
+ "1": {
444
+ "name": "punctuation.definition.arguments.begin.latex"
445
+ },
446
+ "2": {
447
+ "name": "variable.parameter.function.latex"
448
+ },
449
+ "3": {
450
+ "name": "punctuation.definition.arguments.end.latex"
451
+ }
452
+ },
453
+ "contentName": "source.yaml",
454
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
455
+ "patterns": [
456
+ {
457
+ "include": "source.yaml"
458
+ }
459
+ ]
460
+ },
461
+ {
462
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:rust))(\\})",
463
+ "beginCaptures": {
464
+ "1": {
465
+ "name": "punctuation.definition.arguments.begin.latex"
466
+ },
467
+ "2": {
468
+ "name": "variable.parameter.function.latex"
469
+ },
470
+ "3": {
471
+ "name": "punctuation.definition.arguments.end.latex"
472
+ }
473
+ },
474
+ "contentName": "source.rust",
475
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
476
+ "patterns": [
477
+ {
478
+ "include": "source.rust"
479
+ }
480
+ ]
481
+ },
482
+ {
483
+ "begin": "(?:\\G|(?<=\\]))(\\{)([a-zA-Z]*)(\\})",
484
+ "beginCaptures": {
485
+ "1": {
486
+ "name": "punctuation.definition.arguments.begin.latex"
487
+ },
488
+ "2": {
489
+ "name": "variable.parameter.function.latex"
490
+ },
491
+ "3": {
492
+ "name": "punctuation.definition.arguments.end.latex"
493
+ }
494
+ },
495
+ "contentName": "meta.function.embedded.latex",
496
+ "end": "^\\s*(?=\\\\end\\{(?:lstlisting|minted|pyglist)\\})",
497
+ "name": "meta.embedded.block.generic.latex"
498
+ }
499
+ ]
500
+ },
501
+ {
502
+ "begin": "\\s*\\\\begin\\{(?:cppcode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
503
+ "captures": {
504
+ "0": {
505
+ "patterns": [
506
+ {
507
+ "include": "#begin-env-tokenizer"
508
+ }
509
+ ]
510
+ }
511
+ },
512
+ "end": "\\s*\\\\end\\{(?:cppcode)\\*?\\}",
513
+ "patterns": [
514
+ {
515
+ "include": "#multiline-optional-arg-no-highlight"
516
+ },
517
+ {
518
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
519
+ "beginCaptures": {
520
+ "1": {
521
+ "name": "punctuation.definition.arguments.begin.latex"
522
+ }
523
+ },
524
+ "contentName": "variable.parameter.function.latex",
525
+ "end": "(\\})",
526
+ "endCaptures": {
527
+ "1": {
528
+ "name": "punctuation.definition.arguments.end.latex"
529
+ }
530
+ }
531
+ },
532
+ {
533
+ "begin": "^(?=\\s*)",
534
+ "contentName": "source.cpp.embedded.latex",
535
+ "end": "^\\s*(?=\\\\end\\{(?:cppcode)\\*?\\})",
536
+ "patterns": [
537
+ {
538
+ "include": "source.cpp.embedded.latex"
539
+ }
540
+ ]
541
+ }
542
+ ]
543
+ },
544
+ {
545
+ "begin": "\\s*\\\\begin\\{(?:hscode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
546
+ "captures": {
547
+ "0": {
548
+ "patterns": [
549
+ {
550
+ "include": "#begin-env-tokenizer"
551
+ }
552
+ ]
553
+ }
554
+ },
555
+ "end": "\\s*\\\\end\\{(?:hscode)\\*?\\}",
556
+ "patterns": [
557
+ {
558
+ "include": "#multiline-optional-arg-no-highlight"
559
+ },
560
+ {
561
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
562
+ "beginCaptures": {
563
+ "1": {
564
+ "name": "punctuation.definition.arguments.begin.latex"
565
+ }
566
+ },
567
+ "contentName": "variable.parameter.function.latex",
568
+ "end": "(\\})",
569
+ "endCaptures": {
570
+ "1": {
571
+ "name": "punctuation.definition.arguments.end.latex"
572
+ }
573
+ }
574
+ },
575
+ {
576
+ "begin": "^(?=\\s*)",
577
+ "contentName": "source.haskell",
578
+ "end": "^\\s*(?=\\\\end\\{(?:hscode)\\*?\\})",
579
+ "patterns": [
580
+ {
581
+ "include": "source.haskell"
582
+ }
583
+ ]
584
+ }
585
+ ]
586
+ },
587
+ {
588
+ "begin": "\\s*\\\\begin\\{(?:luacode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
589
+ "captures": {
590
+ "0": {
591
+ "patterns": [
592
+ {
593
+ "include": "#begin-env-tokenizer"
594
+ }
595
+ ]
596
+ }
597
+ },
598
+ "end": "\\s*\\\\end\\{(?:luacode)\\*?\\}",
599
+ "patterns": [
600
+ {
601
+ "include": "#multiline-optional-arg-no-highlight"
602
+ },
603
+ {
604
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
605
+ "beginCaptures": {
606
+ "1": {
607
+ "name": "punctuation.definition.arguments.begin.latex"
608
+ }
609
+ },
610
+ "contentName": "variable.parameter.function.latex",
611
+ "end": "(\\})",
612
+ "endCaptures": {
613
+ "1": {
614
+ "name": "punctuation.definition.arguments.end.latex"
615
+ }
616
+ }
617
+ },
618
+ {
619
+ "begin": "^(?=\\s*)",
620
+ "contentName": "source.lua",
621
+ "end": "^\\s*(?=\\\\end\\{(?:luacode)\\*?\\})",
622
+ "patterns": [
623
+ {
624
+ "include": "source.lua"
625
+ }
626
+ ]
627
+ }
628
+ ]
629
+ },
630
+ {
631
+ "begin": "\\s*\\\\begin\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
632
+ "captures": {
633
+ "0": {
634
+ "patterns": [
635
+ {
636
+ "include": "#begin-env-tokenizer"
637
+ }
638
+ ]
639
+ }
640
+ },
641
+ "end": "\\s*\\\\end\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\}",
642
+ "patterns": [
643
+ {
644
+ "include": "#multiline-optional-arg-no-highlight"
645
+ },
646
+ {
647
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
648
+ "beginCaptures": {
649
+ "1": {
650
+ "name": "punctuation.definition.arguments.begin.latex"
651
+ }
652
+ },
653
+ "contentName": "variable.parameter.function.latex",
654
+ "end": "(\\})",
655
+ "endCaptures": {
656
+ "1": {
657
+ "name": "punctuation.definition.arguments.end.latex"
658
+ }
659
+ }
660
+ },
661
+ {
662
+ "begin": "^(?=\\s*)",
663
+ "contentName": "source.julia",
664
+ "end": "^\\s*(?=\\\\end\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\})",
665
+ "patterns": [
666
+ {
667
+ "include": "source.julia"
668
+ }
669
+ ]
670
+ }
671
+ ]
672
+ },
673
+ {
674
+ "begin": "\\s*\\\\begin\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
675
+ "captures": {
676
+ "0": {
677
+ "patterns": [
678
+ {
679
+ "include": "#begin-env-tokenizer"
680
+ }
681
+ ]
682
+ }
683
+ },
684
+ "end": "\\s*\\\\end\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\}",
685
+ "patterns": [
686
+ {
687
+ "include": "#multiline-optional-arg-no-highlight"
688
+ },
689
+ {
690
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
691
+ "beginCaptures": {
692
+ "1": {
693
+ "name": "punctuation.definition.arguments.begin.latex"
694
+ }
695
+ },
696
+ "contentName": "variable.parameter.function.latex",
697
+ "end": "(\\})",
698
+ "endCaptures": {
699
+ "1": {
700
+ "name": "punctuation.definition.arguments.end.latex"
701
+ }
702
+ }
703
+ },
704
+ {
705
+ "begin": "^(?=\\s*)",
706
+ "contentName": "source.julia",
707
+ "end": "^\\s*(?=\\\\end\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\})",
708
+ "patterns": [
709
+ {
710
+ "include": "source.julia"
711
+ }
712
+ ]
713
+ }
714
+ ]
715
+ },
716
+ {
717
+ "begin": "\\s*\\\\begin\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
718
+ "captures": {
719
+ "0": {
720
+ "patterns": [
721
+ {
722
+ "include": "#begin-env-tokenizer"
723
+ }
724
+ ]
725
+ }
726
+ },
727
+ "end": "\\s*\\\\end\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\}",
728
+ "patterns": [
729
+ {
730
+ "include": "#multiline-optional-arg-no-highlight"
731
+ },
732
+ {
733
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
734
+ "beginCaptures": {
735
+ "1": {
736
+ "name": "punctuation.definition.arguments.begin.latex"
737
+ }
738
+ },
739
+ "contentName": "variable.parameter.function.latex",
740
+ "end": "(\\})",
741
+ "endCaptures": {
742
+ "1": {
743
+ "name": "punctuation.definition.arguments.end.latex"
744
+ }
745
+ }
746
+ },
747
+ {
748
+ "begin": "^(?=\\s*)",
749
+ "contentName": "source.python",
750
+ "end": "^\\s*(?=\\\\end\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\})",
751
+ "patterns": [
752
+ {
753
+ "include": "source.python"
754
+ }
755
+ ]
756
+ }
757
+ ]
758
+ },
759
+ {
760
+ "begin": "\\s*\\\\begin\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
761
+ "captures": {
762
+ "0": {
763
+ "patterns": [
764
+ {
765
+ "include": "#begin-env-tokenizer"
766
+ }
767
+ ]
768
+ }
769
+ },
770
+ "end": "\\s*\\\\end\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\}",
771
+ "patterns": [
772
+ {
773
+ "include": "#multiline-optional-arg-no-highlight"
774
+ },
775
+ {
776
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
777
+ "beginCaptures": {
778
+ "1": {
779
+ "name": "punctuation.definition.arguments.begin.latex"
780
+ }
781
+ },
782
+ "contentName": "variable.parameter.function.latex",
783
+ "end": "(\\})",
784
+ "endCaptures": {
785
+ "1": {
786
+ "name": "punctuation.definition.arguments.end.latex"
787
+ }
788
+ }
789
+ },
790
+ {
791
+ "begin": "^(?=\\s*)",
792
+ "contentName": "source.python",
793
+ "end": "^\\s*(?=\\\\end\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\})",
794
+ "patterns": [
795
+ {
796
+ "include": "source.python"
797
+ }
798
+ ]
799
+ }
800
+ ]
801
+ },
802
+ {
803
+ "begin": "\\s*\\\\begin\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
804
+ "captures": {
805
+ "0": {
806
+ "patterns": [
807
+ {
808
+ "include": "#begin-env-tokenizer"
809
+ }
810
+ ]
811
+ }
812
+ },
813
+ "end": "\\s*\\\\end\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\}",
814
+ "patterns": [
815
+ {
816
+ "include": "#multiline-optional-arg-no-highlight"
817
+ },
818
+ {
819
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
820
+ "beginCaptures": {
821
+ "1": {
822
+ "name": "punctuation.definition.arguments.begin.latex"
823
+ }
824
+ },
825
+ "contentName": "variable.parameter.function.latex",
826
+ "end": "(\\})",
827
+ "endCaptures": {
828
+ "1": {
829
+ "name": "punctuation.definition.arguments.end.latex"
830
+ }
831
+ }
832
+ },
833
+ {
834
+ "begin": "^(?=\\s*)",
835
+ "contentName": "source.python",
836
+ "end": "^\\s*(?=\\\\end\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\})",
837
+ "patterns": [
838
+ {
839
+ "include": "source.python"
840
+ }
841
+ ]
842
+ }
843
+ ]
844
+ },
845
+ {
846
+ "begin": "\\s*\\\\begin\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
847
+ "captures": {
848
+ "0": {
849
+ "patterns": [
850
+ {
851
+ "include": "#begin-env-tokenizer"
852
+ }
853
+ ]
854
+ }
855
+ },
856
+ "end": "\\s*\\\\end\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\}",
857
+ "patterns": [
858
+ {
859
+ "include": "#multiline-optional-arg-no-highlight"
860
+ },
861
+ {
862
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
863
+ "beginCaptures": {
864
+ "1": {
865
+ "name": "punctuation.definition.arguments.begin.latex"
866
+ }
867
+ },
868
+ "contentName": "variable.parameter.function.latex",
869
+ "end": "(\\})",
870
+ "endCaptures": {
871
+ "1": {
872
+ "name": "punctuation.definition.arguments.end.latex"
873
+ }
874
+ }
875
+ },
876
+ {
877
+ "begin": "^(?=\\s*)",
878
+ "contentName": "source.python",
879
+ "end": "^\\s*(?=\\\\end\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\})",
880
+ "patterns": [
881
+ {
882
+ "include": "source.python"
883
+ }
884
+ ]
885
+ }
886
+ ]
887
+ },
888
+ {
889
+ "begin": "\\s*\\\\begin\\{(?:scalacode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
890
+ "captures": {
891
+ "0": {
892
+ "patterns": [
893
+ {
894
+ "include": "#begin-env-tokenizer"
895
+ }
896
+ ]
897
+ }
898
+ },
899
+ "end": "\\s*\\\\end\\{(?:scalacode)\\*?\\}",
900
+ "patterns": [
901
+ {
902
+ "include": "#multiline-optional-arg-no-highlight"
903
+ },
904
+ {
905
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
906
+ "beginCaptures": {
907
+ "1": {
908
+ "name": "punctuation.definition.arguments.begin.latex"
909
+ }
910
+ },
911
+ "contentName": "variable.parameter.function.latex",
912
+ "end": "(\\})",
913
+ "endCaptures": {
914
+ "1": {
915
+ "name": "punctuation.definition.arguments.end.latex"
916
+ }
917
+ }
918
+ },
919
+ {
920
+ "begin": "^(?=\\s*)",
921
+ "contentName": "source.scala",
922
+ "end": "^\\s*(?=\\\\end\\{(?:scalacode)\\*?\\})",
923
+ "patterns": [
924
+ {
925
+ "include": "source.scala"
926
+ }
927
+ ]
928
+ }
929
+ ]
930
+ },
931
+ {
932
+ "begin": "\\s*\\\\begin\\{(?:asy|asycode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
933
+ "captures": {
934
+ "0": {
935
+ "patterns": [
936
+ {
937
+ "include": "#begin-env-tokenizer"
938
+ }
939
+ ]
940
+ }
941
+ },
942
+ "end": "\\s*\\\\end\\{(?:asy|asycode)\\*?\\}",
943
+ "patterns": [
944
+ {
945
+ "include": "#multiline-optional-arg-no-highlight"
946
+ },
947
+ {
948
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
949
+ "beginCaptures": {
950
+ "1": {
951
+ "name": "punctuation.definition.arguments.begin.latex"
952
+ }
953
+ },
954
+ "contentName": "variable.parameter.function.latex",
955
+ "end": "(\\})",
956
+ "endCaptures": {
957
+ "1": {
958
+ "name": "punctuation.definition.arguments.end.latex"
959
+ }
960
+ }
961
+ },
962
+ {
963
+ "begin": "^(?=\\s*)",
964
+ "contentName": "source.asymptote",
965
+ "end": "^\\s*(?=\\\\end\\{(?:asy|asycode)\\*?\\})",
966
+ "patterns": [
967
+ {
968
+ "include": "source.asymptote"
969
+ }
970
+ ]
971
+ }
972
+ ]
973
+ },
974
+ {
975
+ "begin": "\\s*\\\\begin\\{(?:dot2tex|dotcode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
976
+ "captures": {
977
+ "0": {
978
+ "patterns": [
979
+ {
980
+ "include": "#begin-env-tokenizer"
981
+ }
982
+ ]
983
+ }
984
+ },
985
+ "end": "\\s*\\\\end\\{(?:dot2tex|dotcode)\\*?\\}",
986
+ "patterns": [
987
+ {
988
+ "include": "#multiline-optional-arg-no-highlight"
989
+ },
990
+ {
991
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
992
+ "beginCaptures": {
993
+ "1": {
994
+ "name": "punctuation.definition.arguments.begin.latex"
995
+ }
996
+ },
997
+ "contentName": "variable.parameter.function.latex",
998
+ "end": "(\\})",
999
+ "endCaptures": {
1000
+ "1": {
1001
+ "name": "punctuation.definition.arguments.end.latex"
1002
+ }
1003
+ }
1004
+ },
1005
+ {
1006
+ "begin": "^(?=\\s*)",
1007
+ "contentName": "source.dot",
1008
+ "end": "^\\s*(?=\\\\end\\{(?:dot2tex|dotcode)\\*?\\})",
1009
+ "patterns": [
1010
+ {
1011
+ "include": "source.dot"
1012
+ }
1013
+ ]
1014
+ }
1015
+ ]
1016
+ },
1017
+ {
1018
+ "begin": "\\s*\\\\begin\\{(?:gnuplot)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
1019
+ "captures": {
1020
+ "0": {
1021
+ "patterns": [
1022
+ {
1023
+ "include": "#begin-env-tokenizer"
1024
+ }
1025
+ ]
1026
+ }
1027
+ },
1028
+ "end": "\\s*\\\\end\\{(?:gnuplot)\\*?\\}",
1029
+ "patterns": [
1030
+ {
1031
+ "include": "#multiline-optional-arg-no-highlight"
1032
+ },
1033
+ {
1034
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
1035
+ "beginCaptures": {
1036
+ "1": {
1037
+ "name": "punctuation.definition.arguments.begin.latex"
1038
+ }
1039
+ },
1040
+ "contentName": "variable.parameter.function.latex",
1041
+ "end": "(\\})",
1042
+ "endCaptures": {
1043
+ "1": {
1044
+ "name": "punctuation.definition.arguments.end.latex"
1045
+ }
1046
+ }
1047
+ },
1048
+ {
1049
+ "begin": "^(?=\\s*)",
1050
+ "contentName": "source.gnuplot",
1051
+ "end": "^\\s*(?=\\\\end\\{(?:gnuplot)\\*?\\})",
1052
+ "patterns": [
1053
+ {
1054
+ "include": "source.gnuplot"
1055
+ }
1056
+ ]
1057
+ }
1058
+ ]
1059
+ },
1060
+ {
1061
+ "begin": "((?:\\s*)\\\\begin\\{([a-zA-Z]*code|lstlisting|minted|pyglist)(?:\\*)?\\}(?:\\[.*\\])?(?:\\{.*\\})?)",
1062
+ "captures": {
1063
+ "1": {
1064
+ "patterns": [
1065
+ {
1066
+ "include": "#begin-env-tokenizer"
1067
+ }
1068
+ ]
1069
+ }
1070
+ },
1071
+ "contentName": "meta.function.embedded.latex",
1072
+ "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)",
1073
+ "name": "meta.embedded.block.generic.latex"
1074
+ },
1075
+ {
1076
+ "begin": "((\\\\)addplot)(?:\\+?)((?:\\[[^\\[]*\\]))*\\s*(gnuplot)\\s*((?:\\[[^\\[]*\\]))*\\s*(\\{)",
1077
+ "captures": {
1078
+ "1": {
1079
+ "name": "support.function.be.latex"
1080
+ },
1081
+ "2": {
1082
+ "name": "punctuation.definition.function.latex"
1083
+ },
1084
+ "3": {
1085
+ "patterns": [
1086
+ {
1087
+ "include": "#optional-arg"
1088
+ }
1089
+ ]
1090
+ },
1091
+ "4": {
1092
+ "name": "variable.parameter.function.latex"
1093
+ },
1094
+ "5": {
1095
+ "patterns": [
1096
+ {
1097
+ "include": "#optional-arg"
1098
+ }
1099
+ ]
1100
+ },
1101
+ "6": {
1102
+ "name": "punctuation.definition.arguments.begin.latex"
1103
+ }
1104
+ },
1105
+ "end": "\\s*(\\};)",
1106
+ "patterns": [
1107
+ {
1108
+ "begin": "%",
1109
+ "beginCaptures": {
1110
+ "0": {
1111
+ "name": "punctuation.definition.comment.latex"
1112
+ }
1113
+ },
1114
+ "end": "$\\n?",
1115
+ "name": "comment.line.percentage.latex"
1116
+ },
1117
+ {
1118
+ "include": "source.gnuplot"
1119
+ }
1120
+ ]
1121
+ },
1122
+ {
1123
+ "begin": "(\\s*\\\\begin\\{((?:fboxv|boxedv|V|v|spv)erbatim\\*?)\\})",
1124
+ "captures": {
1125
+ "1": {
1126
+ "patterns": [
1127
+ {
1128
+ "include": "#begin-env-tokenizer"
1129
+ }
1130
+ ]
1131
+ }
1132
+ },
1133
+ "contentName": "markup.raw.verbatim.latex",
1134
+ "end": "(\\\\end\\{\\2\\})",
1135
+ "name": "meta.function.verbatim.latex"
1136
+ },
1137
+ {
1138
+ "begin": "(\\s*\\\\begin\\{VerbatimOut\\}\\{[^\\}]*\\})",
1139
+ "captures": {
1140
+ "1": {
1141
+ "patterns": [
1142
+ {
1143
+ "include": "#begin-env-tokenizer"
1144
+ }
1145
+ ]
1146
+ }
1147
+ },
1148
+ "contentName": "markup.raw.verbatim.latex",
1149
+ "end": "(\\\\end\\{\\VerbatimOut\\})",
1150
+ "name": "meta.function.verbatim.latex"
1151
+ },
1152
+ {
1153
+ "begin": "(\\s*\\\\begin\\{alltt\\})",
1154
+ "captures": {
1155
+ "1": {
1156
+ "patterns": [
1157
+ {
1158
+ "include": "#begin-env-tokenizer"
1159
+ }
1160
+ ]
1161
+ }
1162
+ },
1163
+ "contentName": "markup.raw.verbatim.latex",
1164
+ "end": "(\\\\end\\{alltt\\})",
1165
+ "name": "meta.function.alltt.latex",
1166
+ "patterns": [
1167
+ {
1168
+ "captures": {
1169
+ "1": {
1170
+ "name": "punctuation.definition.function.latex"
1171
+ }
1172
+ },
1173
+ "match": "(\\\\)[A-Za-z]+",
1174
+ "name": "support.function.general.latex"
1175
+ }
1176
+ ]
1177
+ },
1178
+ {
1179
+ "begin": "(\\s*\\\\begin\\{([Cc]omment)\\})",
1180
+ "captures": {
1181
+ "1": {
1182
+ "patterns": [
1183
+ {
1184
+ "include": "#begin-env-tokenizer"
1185
+ }
1186
+ ]
1187
+ }
1188
+ },
1189
+ "contentName": "punctuation.definition.comment.latex",
1190
+ "end": "(\\\\end\\{\\2\\})",
1191
+ "name": "meta.function.verbatim.latex"
1192
+ },
1193
+ {
1194
+ "begin": "(?:\\s*)((\\\\)(?:href|hyperref|hyperimage))(?=\\[|\\{)",
1195
+ "beginCaptures": {
1196
+ "1": {
1197
+ "name": "support.function.url.latex"
1198
+ }
1199
+ },
1200
+ "comment": "Captures \\command[option]{url}{optional category}{optional name}{text}",
1201
+ "end": "(\\})",
1202
+ "endCaptures": {
1203
+ "1": {
1204
+ "name": "punctuation.definition.arguments.end.latex"
1205
+ }
1206
+ },
1207
+ "name": "meta.function.hyperlink.latex",
1208
+ "patterns": [
1209
+ {
1210
+ "include": "#multiline-optional-arg-no-highlight"
1211
+ },
1212
+ {
1213
+ "begin": "(?:\\G|(?<=\\]))(\\{)([^}]*)(\\})(?:\\{[^}]*\\}){2}?(\\{)",
1214
+ "beginCaptures": {
1215
+ "1": {
1216
+ "name": "punctuation.definition.arguments.begin.latex"
1217
+ },
1218
+ "2": {
1219
+ "name": "markup.underline.link.latex"
1220
+ },
1221
+ "3": {
1222
+ "name": "punctuation.definition.arguments.end.latex"
1223
+ },
1224
+ "4": {
1225
+ "name": "punctuation.definition.arguments.begin.latex"
1226
+ }
1227
+ },
1228
+ "contentName": "meta.variable.parameter.function.latex",
1229
+ "end": "(?=\\})",
1230
+ "patterns": [
1231
+ {
1232
+ "include": "$base"
1233
+ }
1234
+ ]
1235
+ },
1236
+ {
1237
+ "begin": "(?:\\G|(?<=\\]))(?:(\\{)[^}]*(\\}))?(\\{)",
1238
+ "beginCaptures": {
1239
+ "1": {
1240
+ "name": "punctuation.definition.arguments.begin.latex"
1241
+ },
1242
+ "2": {
1243
+ "name": "punctuation.definition.arguments.end.latex"
1244
+ },
1245
+ "3": {
1246
+ "name": "punctuation.definition.arguments.begin.latex"
1247
+ }
1248
+ },
1249
+ "contentName": "meta.variable.parameter.function.latex",
1250
+ "end": "(?=\\})",
1251
+ "patterns": [
1252
+ {
1253
+ "include": "$base"
1254
+ }
1255
+ ]
1256
+ }
1257
+ ]
1258
+ },
1259
+ {
1260
+ "captures": {
1261
+ "'": {
1262
+ "name": "markup.underline.link.latex"
1263
+ },
1264
+ "1": {
1265
+ "name": "support.function.url.latex"
1266
+ },
1267
+ "2": {
1268
+ "name": "punctuation.definition.function.latex"
1269
+ },
1270
+ "3": {
1271
+ "name": "punctuation.definition.arguments.begin.latex"
1272
+ },
1273
+ "5": {
1274
+ "name": "punctuation.definition.arguments.end.latex"
1275
+ }
1276
+ },
1277
+ "match": "(?:\\s*)((\\\\)url)(\\{)([^}]*)(\\})",
1278
+ "name": "meta.function.link.url.latex"
1279
+ },
1280
+ {
1281
+ "captures": {
1282
+ "1": {
1283
+ "patterns": [
1284
+ {
1285
+ "include": "#begin-env-tokenizer"
1286
+ }
1287
+ ]
1288
+ }
1289
+ },
1290
+ "comment": "These two patterns match the \\begin{document} and \\end{document} commands, so that the environment matching pattern following them will ignore those commands.",
1291
+ "match": "(\\s*\\\\begin\\{document\\})",
1292
+ "name": "meta.function.begin-document.latex"
1293
+ },
1294
+ {
1295
+ "captures": {
1296
+ "1": {
1297
+ "patterns": [
1298
+ {
1299
+ "include": "#begin-env-tokenizer"
1300
+ }
1301
+ ]
1302
+ }
1303
+ },
1304
+ "match": "(\\s*\\\\end\\{document\\})",
1305
+ "name": "meta.function.end-document.latex"
1306
+ },
1307
+ {
1308
+ "begin": "(?:\\s*)((\\\\)begin)(\\{)((?:\\+?array|equation|(?:IEEE)?eqnarray|multline|align|aligned|alignat|alignedat|flalign|flaligned|flalignat|split|gather|gathered|\\+?cases|(?:display)?math|\\+?[a-zA-Z]*matrix|[pbBvV]?NiceMatrix|[pbBvV]?NiceArray|(?:(?:arg)?(?:mini|maxi)))(?:\\*|!)?)(\\})(\\s*\\n)?",
1309
+ "captures": {
1310
+ "1": {
1311
+ "name": "support.function.be.latex"
1312
+ },
1313
+ "2": {
1314
+ "name": "punctuation.definition.function.latex"
1315
+ },
1316
+ "3": {
1317
+ "name": "punctuation.definition.arguments.begin.latex"
1318
+ },
1319
+ "4": {
1320
+ "name": "variable.parameter.function.latex"
1321
+ },
1322
+ "5": {
1323
+ "name": "punctuation.definition.arguments.end.latex"
1324
+ }
1325
+ },
1326
+ "contentName": "meta.math.block.latex support.class.math.block.environment.latex",
1327
+ "end": "(?:\\s*)((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?",
1328
+ "name": "meta.function.environment.math.latex",
1329
+ "patterns": [
1330
+ {
1331
+ "match": "(?<!\\\\)&",
1332
+ "name": "keyword.control.equation.align.latex"
1333
+ },
1334
+ {
1335
+ "match": "\\\\\\\\",
1336
+ "name": "keyword.control.equation.newline.latex"
1337
+ },
1338
+ {
1339
+ "include": "#definition-label"
1340
+ },
1341
+ {
1342
+ "include": "text.tex#math"
1343
+ },
1344
+ {
1345
+ "include": "$base"
1346
+ }
1347
+ ]
1348
+ },
1349
+ {
1350
+ "begin": "(?:\\s*)(\\\\begin\\{empheq\\}(?:\\[.*\\])?)",
1351
+ "captures": {
1352
+ "1": {
1353
+ "patterns": [
1354
+ {
1355
+ "include": "#begin-env-tokenizer"
1356
+ }
1357
+ ]
1358
+ }
1359
+ },
1360
+ "contentName": "meta.math.block.latex support.class.math.block.environment.latex",
1361
+ "end": "(?:\\s*)(\\\\end\\{empheq\\})",
1362
+ "name": "meta.function.environment.math.latex",
1363
+ "patterns": [
1364
+ {
1365
+ "match": "(?<!\\\\)&",
1366
+ "name": "keyword.control.equation.align.latex"
1367
+ },
1368
+ {
1369
+ "match": "\\\\\\\\",
1370
+ "name": "keyword.control.equation.newline.latex"
1371
+ },
1372
+ {
1373
+ "include": "#definition-label"
1374
+ },
1375
+ {
1376
+ "include": "text.tex#math"
1377
+ },
1378
+ {
1379
+ "include": "$base"
1380
+ }
1381
+ ]
1382
+ },
1383
+ {
1384
+ "begin": "(\\s*\\\\begin\\{(tabular[xy*]?|xltabular|longtable|(?:long)?tabu|(?:long|tall)?tblr|NiceTabular[X*]?|booktabs)\\}(\\s*\\n)?)",
1385
+ "captures": {
1386
+ "1": {
1387
+ "patterns": [
1388
+ {
1389
+ "include": "#begin-env-tokenizer"
1390
+ }
1391
+ ]
1392
+ }
1393
+ },
1394
+ "contentName": "meta.data.environment.tabular.latex",
1395
+ "end": "(\\s*\\\\end\\{(\\2)\\}(?:\\s*\\n)?)",
1396
+ "name": "meta.function.environment.tabular.latex",
1397
+ "patterns": [
1398
+ {
1399
+ "match": "(?<!\\\\)&",
1400
+ "name": "keyword.control.table.cell.latex"
1401
+ },
1402
+ {
1403
+ "match": "\\\\\\\\",
1404
+ "name": "keyword.control.table.newline.latex"
1405
+ },
1406
+ {
1407
+ "include": "$base"
1408
+ }
1409
+ ]
1410
+ },
1411
+ {
1412
+ "begin": "(\\s*\\\\begin\\{(itemize|enumerate|description|list)\\})",
1413
+ "captures": {
1414
+ "1": {
1415
+ "patterns": [
1416
+ {
1417
+ "include": "#begin-env-tokenizer"
1418
+ }
1419
+ ]
1420
+ }
1421
+ },
1422
+ "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)",
1423
+ "name": "meta.function.environment.list.latex",
1424
+ "patterns": [
1425
+ {
1426
+ "include": "$base"
1427
+ }
1428
+ ]
1429
+ },
1430
+ {
1431
+ "begin": "(\\s*\\\\begin\\{tikzpicture\\})",
1432
+ "captures": {
1433
+ "1": {
1434
+ "patterns": [
1435
+ {
1436
+ "include": "#begin-env-tokenizer"
1437
+ }
1438
+ ]
1439
+ }
1440
+ },
1441
+ "end": "(\\\\end\\{tikzpicture\\}(?:\\s*\\n)?)",
1442
+ "name": "meta.function.environment.latex.tikz",
1443
+ "patterns": [
1444
+ {
1445
+ "include": "$base"
1446
+ }
1447
+ ]
1448
+ },
1449
+ {
1450
+ "begin": "(\\s*\\\\begin\\{frame\\})",
1451
+ "captures": {
1452
+ "1": {
1453
+ "patterns": [
1454
+ {
1455
+ "include": "#begin-env-tokenizer"
1456
+ }
1457
+ ]
1458
+ }
1459
+ },
1460
+ "end": "(\\\\end\\{frame\\})",
1461
+ "name": "meta.function.environment.frame.latex",
1462
+ "patterns": [
1463
+ {
1464
+ "include": "$base"
1465
+ }
1466
+ ]
1467
+ },
1468
+ {
1469
+ "begin": "(\\s*\\\\begin\\{(mpost\\*?)\\})",
1470
+ "captures": {
1471
+ "1": {
1472
+ "patterns": [
1473
+ {
1474
+ "include": "#begin-env-tokenizer"
1475
+ }
1476
+ ]
1477
+ }
1478
+ },
1479
+ "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)",
1480
+ "name": "meta.function.environment.latex.mpost"
1481
+ },
1482
+ {
1483
+ "begin": "(\\s*\\\\begin\\{markdown\\})",
1484
+ "captures": {
1485
+ "1": {
1486
+ "patterns": [
1487
+ {
1488
+ "include": "#begin-env-tokenizer"
1489
+ }
1490
+ ]
1491
+ }
1492
+ },
1493
+ "contentName": "meta.embedded.markdown_latex_combined",
1494
+ "end": "(\\\\end\\{markdown\\})",
1495
+ "patterns": [
1496
+ {
1497
+ "include": "text.tex.markdown_latex_combined"
1498
+ }
1499
+ ]
1500
+ },
1501
+ {
1502
+ "begin": "(\\s*\\\\begin\\{(\\w+\\*?)\\})",
1503
+ "captures": {
1504
+ "1": {
1505
+ "patterns": [
1506
+ {
1507
+ "include": "#begin-env-tokenizer"
1508
+ }
1509
+ ]
1510
+ }
1511
+ },
1512
+ "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)",
1513
+ "name": "meta.function.environment.general.latex",
1514
+ "patterns": [
1515
+ {
1516
+ "include": "$base"
1517
+ }
1518
+ ]
1519
+ },
1520
+ {
1521
+ "captures": {
1522
+ "1": {
1523
+ "name": "storage.type.function.latex"
1524
+ },
1525
+ "2": {
1526
+ "name": "punctuation.definition.function.latex"
1527
+ },
1528
+ "3": {
1529
+ "name": "punctuation.definition.begin.latex"
1530
+ },
1531
+ "4": {
1532
+ "name": "support.function.general.latex"
1533
+ },
1534
+ "5": {
1535
+ "name": "punctuation.definition.function.latex"
1536
+ },
1537
+ "6": {
1538
+ "name": "punctuation.definition.end.latex"
1539
+ }
1540
+ },
1541
+ "match": "((\\\\)(?:newcommand|renewcommand|(?:re)?newrobustcmd|DeclareRobustCommand))\\*?({)((\\\\)[^}]*)(})"
1542
+ },
1543
+ {
1544
+ "begin": "((\\\\)marginpar)((?:\\[[^\\[]*?\\])*)(\\{)",
1545
+ "beginCaptures": {
1546
+ "1": {
1547
+ "name": "support.function.marginpar.latex"
1548
+ },
1549
+ "2": {
1550
+ "name": "punctuation.definition.function.latex"
1551
+ },
1552
+ "3": {
1553
+ "patterns": [
1554
+ {
1555
+ "include": "#optional-arg"
1556
+ }
1557
+ ]
1558
+ },
1559
+ "4": {
1560
+ "name": "punctuation.definition.marginpar.begin.latex"
1561
+ }
1562
+ },
1563
+ "contentName": "meta.paragraph.margin.latex",
1564
+ "end": "\\}",
1565
+ "endCaptures": {
1566
+ "0": {
1567
+ "name": "punctuation.definition.marginpar.end.latex"
1568
+ }
1569
+ },
1570
+ "patterns": [
1571
+ {
1572
+ "include": "text.tex#braces"
1573
+ },
1574
+ {
1575
+ "include": "$base"
1576
+ }
1577
+ ]
1578
+ },
1579
+ {
1580
+ "begin": "((\\\\)footnote)((?:\\[[^\\[]*?\\])*)(\\{)",
1581
+ "beginCaptures": {
1582
+ "1": {
1583
+ "name": "support.function.footnote.latex"
1584
+ },
1585
+ "2": {
1586
+ "name": "punctuation.definition.function.latex"
1587
+ },
1588
+ "3": {
1589
+ "patterns": [
1590
+ {
1591
+ "include": "#optional-arg"
1592
+ }
1593
+ ]
1594
+ },
1595
+ "4": {
1596
+ "name": "punctuation.definition.footnote.begin.latex"
1597
+ }
1598
+ },
1599
+ "contentName": "entity.name.footnote.latex",
1600
+ "end": "\\}",
1601
+ "endCaptures": {
1602
+ "0": {
1603
+ "name": "punctuation.definition.footnote.end.latex"
1604
+ }
1605
+ },
1606
+ "patterns": [
1607
+ {
1608
+ "include": "text.tex#braces"
1609
+ },
1610
+ {
1611
+ "include": "$base"
1612
+ }
1613
+ ]
1614
+ },
1615
+ {
1616
+ "begin": "((\\\\)emph)(\\{)",
1617
+ "beginCaptures": {
1618
+ "1": {
1619
+ "name": "support.function.emph.latex"
1620
+ },
1621
+ "2": {
1622
+ "name": "punctuation.definition.function.latex"
1623
+ },
1624
+ "3": {
1625
+ "name": "punctuation.definition.emph.begin.latex"
1626
+ }
1627
+ },
1628
+ "contentName": "markup.italic.emph.latex",
1629
+ "end": "\\}",
1630
+ "endCaptures": {
1631
+ "0": {
1632
+ "name": "punctuation.definition.emph.end.latex"
1633
+ }
1634
+ },
1635
+ "name": "meta.function.emph.latex",
1636
+ "patterns": [
1637
+ {
1638
+ "include": "text.tex#braces"
1639
+ },
1640
+ {
1641
+ "include": "$base"
1642
+ }
1643
+ ]
1644
+ },
1645
+ {
1646
+ "begin": "((\\\\)textit)(\\{)",
1647
+ "captures": {
1648
+ "1": {
1649
+ "name": "support.function.textit.latex"
1650
+ },
1651
+ "2": {
1652
+ "name": "punctuation.definition.function.latex"
1653
+ },
1654
+ "3": {
1655
+ "name": "punctuation.definition.textit.begin.latex"
1656
+ }
1657
+ },
1658
+ "comment": "We put the keyword in a capture and name this capture, so that disabling spell checking for “keyword” won't be inherited by the argument to \\textit{...}.\n\nPut specific matches for particular LaTeX keyword.functions before the last two more general functions",
1659
+ "contentName": "markup.italic.textit.latex",
1660
+ "end": "\\}",
1661
+ "endCaptures": {
1662
+ "0": {
1663
+ "name": "punctuation.definition.textit.end.latex"
1664
+ }
1665
+ },
1666
+ "name": "meta.function.textit.latex",
1667
+ "patterns": [
1668
+ {
1669
+ "include": "text.tex#braces"
1670
+ },
1671
+ {
1672
+ "include": "$base"
1673
+ }
1674
+ ]
1675
+ },
1676
+ {
1677
+ "begin": "((\\\\)textbf)(\\{)",
1678
+ "captures": {
1679
+ "1": {
1680
+ "name": "support.function.textbf.latex"
1681
+ },
1682
+ "2": {
1683
+ "name": "punctuation.definition.function.latex"
1684
+ },
1685
+ "3": {
1686
+ "name": "punctuation.definition.textbf.begin.latex"
1687
+ }
1688
+ },
1689
+ "contentName": "markup.bold.textbf.latex",
1690
+ "end": "\\}",
1691
+ "endCaptures": {
1692
+ "0": {
1693
+ "name": "punctuation.definition.textbf.end.latex"
1694
+ }
1695
+ },
1696
+ "name": "meta.function.textbf.latex",
1697
+ "patterns": [
1698
+ {
1699
+ "include": "text.tex#braces"
1700
+ },
1701
+ {
1702
+ "include": "$base"
1703
+ }
1704
+ ]
1705
+ },
1706
+ {
1707
+ "begin": "((\\\\)texttt)(\\{)",
1708
+ "captures": {
1709
+ "1": {
1710
+ "name": "support.function.texttt.latex"
1711
+ },
1712
+ "2": {
1713
+ "name": "punctuation.definition.function.latex"
1714
+ },
1715
+ "3": {
1716
+ "name": "punctuation.definition.texttt.begin.latex"
1717
+ }
1718
+ },
1719
+ "contentName": "markup.raw.texttt.latex",
1720
+ "end": "\\}",
1721
+ "endCaptures": {
1722
+ "0": {
1723
+ "name": "punctuation.definition.texttt.end.latex"
1724
+ }
1725
+ },
1726
+ "name": "meta.function.texttt.latex",
1727
+ "patterns": [
1728
+ {
1729
+ "include": "text.tex#braces"
1730
+ },
1731
+ {
1732
+ "include": "$base"
1733
+ }
1734
+ ]
1735
+ },
1736
+ {
1737
+ "captures": {
1738
+ "0": {
1739
+ "name": "keyword.other.item.latex"
1740
+ },
1741
+ "1": {
1742
+ "name": "punctuation.definition.keyword.latex"
1743
+ }
1744
+ },
1745
+ "match": "(\\\\)item\\b",
1746
+ "name": "meta.scope.item.latex"
1747
+ },
1748
+ {
1749
+ "begin": "((\\\\)(?:[aA]uto|foot|full|no|ref|short|[tT]ext|[pP]aren|[sS]mart)?[cC]ite(?:al)?(?:p|s|t|author|year(?:par)?|title)?[ANP]*\\*?)((?:(?:\\([^\\)]*\\)){0,2}(?:\\[[^\\]]*\\]){0,2}\\{[\\p{Alphabetic}:.]*\\})*)(?:([<\\[])[^\\]<>]*([>\\]]))?(?:(\\[)[^\\]]*(\\]))?(\\{)",
1750
+ "captures": {
1751
+ "1": {
1752
+ "name": "keyword.control.cite.latex"
1753
+ },
1754
+ "2": {
1755
+ "name": "punctuation.definition.keyword.latex"
1756
+ },
1757
+ "3": {
1758
+ "patterns": [
1759
+ {
1760
+ "include": "#autocites-arg"
1761
+ }
1762
+ ]
1763
+ },
1764
+ "4": {
1765
+ "name": "punctuation.definition.arguments.optional.begin.latex"
1766
+ },
1767
+ "5": {
1768
+ "name": "punctuation.definition.arguments.optional.end.latex"
1769
+ },
1770
+ "6": {
1771
+ "name": "punctuation.definition.arguments.optional.begin.latex"
1772
+ },
1773
+ "7": {
1774
+ "name": "punctuation.definition.arguments.optional.end.latex"
1775
+ },
1776
+ "8": {
1777
+ "name": "punctuation.definition.arguments.begin.latex"
1778
+ }
1779
+ },
1780
+ "end": "\\}",
1781
+ "endCaptures": {
1782
+ "0": {
1783
+ "name": "punctuation.definition.arguments.end.latex"
1784
+ }
1785
+ },
1786
+ "name": "meta.citation.latex",
1787
+ "patterns": [
1788
+ {
1789
+ "captures": {
1790
+ "1": {
1791
+ "name": "comment.line.percentage.tex"
1792
+ },
1793
+ "2": {
1794
+ "name": "punctuation.definition.comment.tex"
1795
+ }
1796
+ },
1797
+ "match": "((%).*)$"
1798
+ },
1799
+ {
1800
+ "match": "[\\p{Alphabetic}\\p{Number}:.-]+",
1801
+ "name": "constant.other.reference.citation.latex"
1802
+ }
1803
+ ]
1804
+ },
1805
+ {
1806
+ "begin": "((\\\\)bibentry)(\\{)",
1807
+ "captures": {
1808
+ "1": {
1809
+ "name": "keyword.control.cite.latex"
1810
+ },
1811
+ "2": {
1812
+ "name": "punctuation.definition.keyword.latex"
1813
+ },
1814
+ "3": {
1815
+ "name": "punctuation.definition.arguments.begin.latex"
1816
+ }
1817
+ },
1818
+ "end": "\\}",
1819
+ "endCaptures": {
1820
+ "0": {
1821
+ "name": "punctuation.definition.arguments.end.latex"
1822
+ }
1823
+ },
1824
+ "name": "meta.citation.latex",
1825
+ "patterns": [
1826
+ {
1827
+ "match": "[\\p{Alphabetic}\\p{Number}:.]+",
1828
+ "name": "constant.other.reference.citation.latex"
1829
+ }
1830
+ ]
1831
+ },
1832
+ {
1833
+ "begin": "((\\\\)(?:\\w*[rR]ef\\*?))(\\{)",
1834
+ "beginCaptures": {
1835
+ "1": {
1836
+ "name": "keyword.control.ref.latex"
1837
+ },
1838
+ "2": {
1839
+ "name": "punctuation.definition.keyword.latex"
1840
+ },
1841
+ "3": {
1842
+ "name": "punctuation.definition.arguments.begin.latex"
1843
+ }
1844
+ },
1845
+ "end": "\\}",
1846
+ "endCaptures": {
1847
+ "0": {
1848
+ "name": "punctuation.definition.arguments.end.latex"
1849
+ }
1850
+ },
1851
+ "name": "meta.reference.label.latex",
1852
+ "patterns": [
1853
+ {
1854
+ "match": "[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]",
1855
+ "name": "constant.other.reference.label.latex"
1856
+ }
1857
+ ]
1858
+ },
1859
+ {
1860
+ "include": "#definition-label"
1861
+ },
1862
+ {
1863
+ "begin": "((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((\\\\)scantokens)(\\{)",
1864
+ "beginCaptures": {
1865
+ "1": {
1866
+ "name": "support.function.verb.latex"
1867
+ },
1868
+ "2": {
1869
+ "name": "punctuation.definition.function.latex"
1870
+ },
1871
+ "3": {
1872
+ "name": "support.function.verb.latex"
1873
+ },
1874
+ "4": {
1875
+ "name": "punctuation.definition.verb.latex"
1876
+ },
1877
+ "5": {
1878
+ "name": "punctuation.definition.begin.latex"
1879
+ }
1880
+ },
1881
+ "contentName": "markup.raw.verb.latex",
1882
+ "end": "(\\})",
1883
+ "endCaptures": {
1884
+ "1": {
1885
+ "name": "punctuation.definition.end.latex"
1886
+ }
1887
+ },
1888
+ "name": "meta.function.verb.latex",
1889
+ "patterns": [
1890
+ {
1891
+ "include": "$self"
1892
+ }
1893
+ ]
1894
+ },
1895
+ {
1896
+ "captures": {
1897
+ "1": {
1898
+ "name": "support.function.verb.latex"
1899
+ },
1900
+ "2": {
1901
+ "name": "punctuation.definition.function.latex"
1902
+ },
1903
+ "3": {
1904
+ "name": "punctuation.definition.verb.latex"
1905
+ },
1906
+ "4": {
1907
+ "name": "markup.raw.verb.latex"
1908
+ },
1909
+ "5": {
1910
+ "name": "punctuation.definition.verb.latex"
1911
+ }
1912
+ },
1913
+ "match": "((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((?<=\\s)\\S|[^a-zA-Z])(.*?)(\\3|$)",
1914
+ "name": "meta.function.verb.latex"
1915
+ },
1916
+ {
1917
+ "captures": {
1918
+ "1": {
1919
+ "name": "support.function.verb.latex"
1920
+ },
1921
+ "10": {
1922
+ "name": "markup.raw.verb.latex"
1923
+ },
1924
+ "11": {
1925
+ "name": "punctuation.definition.verb.latex"
1926
+ },
1927
+ "2": {
1928
+ "name": "punctuation.definition.function.latex"
1929
+ },
1930
+ "3": {
1931
+ "patterns": [
1932
+ {
1933
+ "include": "#optional-arg"
1934
+ }
1935
+ ]
1936
+ },
1937
+ "4": {
1938
+ "name": "punctuation.definition.arguments.begin.latex"
1939
+ },
1940
+ "5": {
1941
+ "name": "punctuation.definition.arguments.end.latex"
1942
+ },
1943
+ "6": {
1944
+ "name": "punctuation.definition.verb.latex"
1945
+ },
1946
+ "7": {
1947
+ "name": "markup.raw.verb.latex"
1948
+ },
1949
+ "8": {
1950
+ "name": "punctuation.definition.verb.latex"
1951
+ },
1952
+ "9": {
1953
+ "name": "punctuation.definition.verb.latex"
1954
+ }
1955
+ },
1956
+ "match": "((\\\\)(?:mint|mintinline))((?:\\[[^\\[]*?\\])?)(\\{)[a-zA-Z]*(\\})(?:(?:([^a-zA-Z\\{])(.*?)(\\6))|(?:(\\{)(.*?)(\\})))",
1957
+ "name": "meta.function.verb.latex"
1958
+ },
1959
+ {
1960
+ "captures": {
1961
+ "1": {
1962
+ "name": "support.function.verb.latex"
1963
+ },
1964
+ "2": {
1965
+ "name": "punctuation.definition.function.latex"
1966
+ },
1967
+ "3": {
1968
+ "patterns": [
1969
+ {
1970
+ "include": "#optional-arg"
1971
+ }
1972
+ ]
1973
+ },
1974
+ "4": {
1975
+ "name": "punctuation.definition.verb.latex"
1976
+ },
1977
+ "5": {
1978
+ "name": "markup.raw.verb.latex"
1979
+ },
1980
+ "6": {
1981
+ "name": "punctuation.definition.verb.latex"
1982
+ },
1983
+ "7": {
1984
+ "name": "punctuation.definition.verb.latex"
1985
+ },
1986
+ "8": {
1987
+ "name": "markup.raw.verb.latex"
1988
+ },
1989
+ "9": {
1990
+ "name": "punctuation.definition.verb.latex"
1991
+ }
1992
+ },
1993
+ "match": "((\\\\)[a-z]+inline)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",
1994
+ "name": "meta.function.verb.latex"
1995
+ },
1996
+ {
1997
+ "captures": {
1998
+ "1": {
1999
+ "name": "support.function.verb.latex"
2000
+ },
2001
+ "2": {
2002
+ "name": "punctuation.definition.function.latex"
2003
+ },
2004
+ "3": {
2005
+ "patterns": [
2006
+ {
2007
+ "include": "#optional-arg"
2008
+ }
2009
+ ]
2010
+ },
2011
+ "4": {
2012
+ "name": "punctuation.definition.verb.latex"
2013
+ },
2014
+ "5": {
2015
+ "name": "source.python",
2016
+ "patterns": [
2017
+ {
2018
+ "include": "source.python"
2019
+ }
2020
+ ]
2021
+ },
2022
+ "6": {
2023
+ "name": "punctuation.definition.verb.latex"
2024
+ },
2025
+ "7": {
2026
+ "name": "punctuation.definition.verb.latex"
2027
+ },
2028
+ "8": {
2029
+ "name": "source.python",
2030
+ "patterns": [
2031
+ {
2032
+ "include": "source.python"
2033
+ }
2034
+ ]
2035
+ },
2036
+ "9": {
2037
+ "name": "punctuation.definition.verb.latex"
2038
+ }
2039
+ },
2040
+ "match": "((\\\\)(?:(?:py|pycon|pylab|pylabcon|sympy|sympycon)[cv]?|pyq|pycq|pyif))((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",
2041
+ "name": "meta.function.verb.latex"
2042
+ },
2043
+ {
2044
+ "captures": {
2045
+ "1": {
2046
+ "name": "support.function.verb.latex"
2047
+ },
2048
+ "2": {
2049
+ "name": "punctuation.definition.function.latex"
2050
+ },
2051
+ "3": {
2052
+ "patterns": [
2053
+ {
2054
+ "include": "#optional-arg"
2055
+ }
2056
+ ]
2057
+ },
2058
+ "4": {
2059
+ "name": "punctuation.definition.verb.latex"
2060
+ },
2061
+ "5": {
2062
+ "name": "source.julia",
2063
+ "patterns": [
2064
+ {
2065
+ "include": "source.julia"
2066
+ }
2067
+ ]
2068
+ },
2069
+ "6": {
2070
+ "name": "punctuation.definition.verb.latex"
2071
+ },
2072
+ "7": {
2073
+ "name": "punctuation.definition.verb.latex"
2074
+ },
2075
+ "8": {
2076
+ "name": "source.julia",
2077
+ "patterns": [
2078
+ {
2079
+ "include": "source.julia"
2080
+ }
2081
+ ]
2082
+ },
2083
+ "9": {
2084
+ "name": "punctuation.definition.verb.latex"
2085
+ }
2086
+ },
2087
+ "match": "((\\\\)(?:jl|julia)[cv]?)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",
2088
+ "name": "meta.function.verb.latex"
2089
+ },
2090
+ {
2091
+ "match": "\\\\(?:newline|pagebreak|clearpage|linebreak|pause)(?:\\b)",
2092
+ "name": "keyword.control.layout.latex"
2093
+ },
2094
+ {
2095
+ "begin": "\\\\\\(",
2096
+ "beginCaptures": {
2097
+ "0": {
2098
+ "name": "punctuation.definition.string.begin.latex"
2099
+ }
2100
+ },
2101
+ "end": "\\\\\\)",
2102
+ "endCaptures": {
2103
+ "0": {
2104
+ "name": "punctuation.definition.string.end.latex"
2105
+ }
2106
+ },
2107
+ "name": "meta.math.block.latex support.class.math.block.environment.latex",
2108
+ "patterns": [
2109
+ {
2110
+ "include": "text.tex#math"
2111
+ },
2112
+ {
2113
+ "include": "$base"
2114
+ }
2115
+ ]
2116
+ },
2117
+ {
2118
+ "begin": "\\$\\$",
2119
+ "beginCaptures": {
2120
+ "0": {
2121
+ "name": "punctuation.definition.string.begin.latex"
2122
+ }
2123
+ },
2124
+ "end": "\\$\\$",
2125
+ "endCaptures": {
2126
+ "0": {
2127
+ "name": "punctuation.definition.string.end.latex"
2128
+ }
2129
+ },
2130
+ "name": "meta.math.block.latex support.class.math.block.environment.latex",
2131
+ "patterns": [
2132
+ {
2133
+ "match": "\\\\\\$",
2134
+ "name": "constant.character.escape.latex"
2135
+ },
2136
+ {
2137
+ "include": "text.tex#math"
2138
+ },
2139
+ {
2140
+ "include": "$base"
2141
+ }
2142
+ ]
2143
+ },
2144
+ {
2145
+ "begin": "\\$",
2146
+ "beginCaptures": {
2147
+ "0": {
2148
+ "name": "punctuation.definition.string.begin.tex"
2149
+ }
2150
+ },
2151
+ "end": "\\$",
2152
+ "endCaptures": {
2153
+ "0": {
2154
+ "name": "punctuation.definition.string.end.tex"
2155
+ }
2156
+ },
2157
+ "name": "meta.math.block.tex support.class.math.block.tex",
2158
+ "patterns": [
2159
+ {
2160
+ "match": "\\\\\\$",
2161
+ "name": "constant.character.escape.latex"
2162
+ },
2163
+ {
2164
+ "include": "text.tex#math"
2165
+ },
2166
+ {
2167
+ "include": "$base"
2168
+ }
2169
+ ]
2170
+ },
2171
+ {
2172
+ "begin": "\\\\\\[",
2173
+ "beginCaptures": {
2174
+ "0": {
2175
+ "name": "punctuation.definition.string.begin.latex"
2176
+ }
2177
+ },
2178
+ "end": "\\\\\\]",
2179
+ "endCaptures": {
2180
+ "0": {
2181
+ "name": "punctuation.definition.string.end.latex"
2182
+ }
2183
+ },
2184
+ "name": "meta.math.block.latex support.class.math.block.environment.latex",
2185
+ "patterns": [
2186
+ {
2187
+ "include": "text.tex#math"
2188
+ },
2189
+ {
2190
+ "include": "$base"
2191
+ }
2192
+ ]
2193
+ },
2194
+ {
2195
+ "captures": {
2196
+ "1": {
2197
+ "name": "punctuation.definition.constant.latex"
2198
+ }
2199
+ },
2200
+ "match": "(\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\b",
2201
+ "name": "constant.character.latex"
2202
+ },
2203
+ {
2204
+ "captures": {
2205
+ "1": {
2206
+ "name": "punctuation.definition.column-specials.begin.latex"
2207
+ },
2208
+ "2": {
2209
+ "name": "punctuation.definition.column-specials.end.latex"
2210
+ }
2211
+ },
2212
+ "match": "(?:<|>)(\\{)\\$(\\})",
2213
+ "name": "meta.column-specials.latex"
2214
+ },
2215
+ {
2216
+ "include": "text.tex"
2217
+ }
2218
+ ],
2219
+ "repository": {
2220
+ "autocites-arg": {
2221
+ "patterns": [
2222
+ {
2223
+ "captures": {
2224
+ "1": {
2225
+ "name": "punctuation.definition.arguments.optional.begin.latex"
2226
+ },
2227
+ "2": {
2228
+ "name": "punctuation.definition.arguments.optional.end.latex"
2229
+ },
2230
+ "3": {
2231
+ "name": "punctuation.definition.arguments.optional.begin.latex"
2232
+ },
2233
+ "4": {
2234
+ "name": "punctuation.definition.arguments.optional.end.latex"
2235
+ },
2236
+ "5": {
2237
+ "name": "punctuation.definition.arguments.begin.latex"
2238
+ },
2239
+ "6": {
2240
+ "name": "constant.other.reference.citation.latex"
2241
+ },
2242
+ "7": {
2243
+ "name": "punctuation.definition.arguments.end.latex"
2244
+ },
2245
+ "8": {
2246
+ "patterns": [
2247
+ {
2248
+ "include": "#autocites-arg"
2249
+ }
2250
+ ]
2251
+ }
2252
+ },
2253
+ "match": "(?:(\\()[^\\)]*(\\))){0,2}(?:(\\[)[^\\]]*(\\])){0,2}(\\{)([\\p{Alphabetic}\\p{Number}:.]+)(\\})(.*)"
2254
+ }
2255
+ ]
2256
+ },
2257
+ "begin-env-tokenizer": {
2258
+ "captures": {
2259
+ "1": {
2260
+ "name": "support.function.be.latex"
2261
+ },
2262
+ "10": {
2263
+ "name": "variable.parameter.function.latex"
2264
+ },
2265
+ "11": {
2266
+ "name": "punctuation.definition.arguments.end.latex"
2267
+ },
2268
+ "2": {
2269
+ "name": "punctuation.definition.function.latex"
2270
+ },
2271
+ "3": {
2272
+ "name": "punctuation.definition.arguments.begin.latex"
2273
+ },
2274
+ "4": {
2275
+ "name": "variable.parameter.function.latex"
2276
+ },
2277
+ "5": {
2278
+ "name": "punctuation.definition.arguments.end.latex"
2279
+ },
2280
+ "6": {
2281
+ "name": "punctuation.definition.arguments.optional.begin.latex"
2282
+ },
2283
+ "7": {
2284
+ "patterns": [
2285
+ {
2286
+ "include": "$base"
2287
+ }
2288
+ ]
2289
+ },
2290
+ "8": {
2291
+ "name": "punctuation.definition.arguments.optional.end.latex"
2292
+ },
2293
+ "9": {
2294
+ "name": "punctuation.definition.arguments.begin.latex"
2295
+ }
2296
+ },
2297
+ "match": "\\s*((\\\\)(?:begin|end))(\\{)([a-zA-Z]*\\*?)(\\})(?:(\\[)(.*)(\\]))?(?:(\\{)([^{}]*)(\\}))?"
2298
+ },
2299
+ "definition-label": {
2300
+ "begin": "((\\\\)label)((?:\\[[^\\[]*?\\])*)(\\{)",
2301
+ "beginCaptures": {
2302
+ "1": {
2303
+ "name": "keyword.control.label.latex"
2304
+ },
2305
+ "2": {
2306
+ "name": "punctuation.definition.keyword.latex"
2307
+ },
2308
+ "3": {
2309
+ "patterns": [
2310
+ {
2311
+ "include": "#optional-arg"
2312
+ }
2313
+ ]
2314
+ },
2315
+ "4": {
2316
+ "name": "punctuation.definition.arguments.begin.latex"
2317
+ }
2318
+ },
2319
+ "end": "\\}",
2320
+ "endCaptures": {
2321
+ "0": {
2322
+ "name": "punctuation.definition.arguments.end.latex"
2323
+ }
2324
+ },
2325
+ "name": "meta.definition.label.latex",
2326
+ "patterns": [
2327
+ {
2328
+ "match": "[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]",
2329
+ "name": "variable.parameter.definition.label.latex"
2330
+ }
2331
+ ]
2332
+ },
2333
+ "multiline-optional-arg": {
2334
+ "begin": "\\G\\[",
2335
+ "beginCaptures": {
2336
+ "0": {
2337
+ "name": "punctuation.definition.arguments.optional.begin.latex"
2338
+ }
2339
+ },
2340
+ "contentName": "variable.parameter.function.latex",
2341
+ "end": "\\]",
2342
+ "endCaptures": {
2343
+ "0": {
2344
+ "name": "punctuation.definition.arguments.optional.end.latex"
2345
+ }
2346
+ },
2347
+ "name": "meta.parameter.optional.latex",
2348
+ "patterns": [
2349
+ {
2350
+ "include": "$self"
2351
+ }
2352
+ ]
2353
+ },
2354
+ "multiline-optional-arg-no-highlight": {
2355
+ "begin": "\\G\\[",
2356
+ "beginCaptures": {
2357
+ "0": {
2358
+ "name": "punctuation.definition.arguments.optional.begin.latex"
2359
+ }
2360
+ },
2361
+ "end": "\\]",
2362
+ "endCaptures": {
2363
+ "0": {
2364
+ "name": "punctuation.definition.arguments.optional.end.latex"
2365
+ }
2366
+ },
2367
+ "name": "meta.parameter.optional.latex",
2368
+ "patterns": [
2369
+ {
2370
+ "include": "$self"
2371
+ }
2372
+ ]
2373
+ },
2374
+ "optional-arg": {
2375
+ "patterns": [
2376
+ {
2377
+ "captures": {
2378
+ "1": {
2379
+ "name": "punctuation.definition.arguments.optional.begin.latex"
2380
+ },
2381
+ "2": {
2382
+ "name": "variable.parameter.function.latex"
2383
+ },
2384
+ "3": {
2385
+ "name": "punctuation.definition.arguments.optional.end.latex"
2386
+ }
2387
+ },
2388
+ "match": "(\\[)([^\\[]*?)(\\])",
2389
+ "name": "meta.parameter.optional.latex"
2390
+ }
2391
+ ]
2392
+ }
2393
+ },
2394
+ "scopeName": "text.tex.latex"
2395
+ }