@codingame/monaco-vscode-latex-default-extension 1.81.8-next.1

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