Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/latex/syntaxes/LaTeX.tmLanguage.json
5240 views
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/1f62731d63abfd134e03f4744fcbccadac4e0153",
8
"name": "LaTeX",
9
"scopeName": "text.tex.latex",
10
"patterns": [
11
{
12
"match": "(?<=\\\\[\\w@]|\\\\[\\w@]{2}|\\\\[\\w@]{3}|\\\\[\\w@]{4}|\\\\[\\w@]{5}|\\\\[\\w@]{6})\\s",
13
"comment": "This scope identifies partially typed commands such as `\\tab`. We use this to trigger “Command Completion” only when it makes sense.",
14
"name": "meta.space-after-command.latex"
15
},
16
{
17
"include": "#songs-env"
18
},
19
{
20
"include": "#embedded-code-env"
21
},
22
{
23
"include": "#verbatim-env"
24
},
25
{
26
"include": "#document-env"
27
},
28
{
29
"include": "#all-balanced-env"
30
},
31
{
32
"include": "#documentclass-usepackage-macro"
33
},
34
{
35
"include": "#input-macro"
36
},
37
{
38
"include": "#sections-macro"
39
},
40
{
41
"include": "#hyperref-macro"
42
},
43
{
44
"include": "#newcommand-macro"
45
},
46
{
47
"include": "#text-font-macro"
48
},
49
{
50
"include": "#citation-macro"
51
},
52
{
53
"include": "#references-macro"
54
},
55
{
56
"include": "#label-macro"
57
},
58
{
59
"include": "#verb-macro"
60
},
61
{
62
"include": "#inline-code-macro"
63
},
64
{
65
"include": "#all-other-macro"
66
},
67
{
68
"include": "#display-math"
69
},
70
{
71
"include": "#inline-math"
72
},
73
{
74
"include": "#column-specials"
75
},
76
{
77
"include": "text.tex"
78
}
79
],
80
"repository": {
81
"documentclass-usepackage-macro": {
82
"begin": "((\\\\)(?:usepackage|documentclass))\\b(?=\\[|\\{)",
83
"beginCaptures": {
84
"1": {
85
"name": "keyword.control.preamble.latex"
86
},
87
"2": {
88
"name": "punctuation.definition.function.latex"
89
}
90
},
91
"end": "(?<=\\})",
92
"endCaptures": {
93
"0": {
94
"name": "punctuation.definition.arguments.end.latex"
95
}
96
},
97
"name": "meta.preamble.latex",
98
"patterns": [
99
{
100
"include": "#multiline-optional-arg"
101
},
102
{
103
"begin": "((?:\\G|(?<=\\]))\\{)",
104
"beginCaptures": {
105
"0": {
106
"name": "punctuation.definition.arguments.begin.latex"
107
}
108
},
109
"contentName": "support.class.latex",
110
"end": "(\\})",
111
"endCaptures": {
112
"0": {
113
"name": "punctuation.definition.arguments.end.latex"
114
}
115
},
116
"patterns": [
117
{
118
"include": "$self"
119
}
120
]
121
}
122
]
123
},
124
"document-env": {
125
"patterns": [
126
{
127
"match": "(\\s*\\\\begin\\{document\\})",
128
"captures": {
129
"1": {
130
"patterns": [
131
{
132
"include": "#macro-with-args-tokenizer"
133
}
134
]
135
}
136
},
137
"comment": "These two patterns match the \\begin{document} and \\end{document} commands, so that the environment matching pattern following them will ignore those commands.",
138
"name": "meta.function.begin-document.latex"
139
},
140
{
141
"match": "(\\s*\\\\end\\{document\\})",
142
"captures": {
143
"1": {
144
"patterns": [
145
{
146
"include": "#macro-with-args-tokenizer"
147
}
148
]
149
}
150
},
151
"name": "meta.function.end-document.latex"
152
}
153
]
154
},
155
"input-macro": {
156
"begin": "((\\\\)(?:include|input))(\\{)",
157
"beginCaptures": {
158
"1": {
159
"name": "keyword.control.include.latex"
160
},
161
"2": {
162
"name": "punctuation.definition.function.latex"
163
},
164
"3": {
165
"name": "punctuation.definition.arguments.begin.latex"
166
}
167
},
168
"end": "\\}",
169
"endCaptures": {
170
"0": {
171
"name": "punctuation.definition.arguments.end.latex"
172
}
173
},
174
"name": "meta.include.latex",
175
"patterns": [
176
{
177
"include": "$self"
178
}
179
]
180
},
181
"sections-macro": {
182
"begin": "((\\\\)((?:sub){0,2}section|(?:sub)?paragraph|chapter|part|addpart|addchap|addsec|minisec|frametitle)(?:\\*)?)((?:\\[[^\\[]*?\\]){0,2})(\\{)",
183
"beginCaptures": {
184
"1": {
185
"name": "support.function.section.latex"
186
},
187
"2": {
188
"name": "punctuation.definition.function.latex"
189
},
190
"4": {
191
"patterns": [
192
{
193
"include": "#optional-arg-bracket"
194
}
195
]
196
},
197
"5": {
198
"name": "punctuation.definition.arguments.begin.latex"
199
}
200
},
201
"comment": "this works OK with all kinds of crazy stuff as long as section is one line",
202
"contentName": "entity.name.section.latex",
203
"end": "\\}",
204
"endCaptures": {
205
"0": {
206
"name": "punctuation.definition.arguments.end.latex"
207
}
208
},
209
"name": "meta.function.section.$3.latex",
210
"patterns": [
211
{
212
"include": "#braces"
213
},
214
{
215
"include": "$self"
216
}
217
]
218
},
219
"text-font-macro": {
220
"patterns": [
221
{
222
"begin": "((\\\\)emph)(\\{)",
223
"beginCaptures": {
224
"1": {
225
"name": "support.function.emph.latex"
226
},
227
"2": {
228
"name": "punctuation.definition.function.latex"
229
},
230
"3": {
231
"name": "punctuation.definition.emph.begin.latex"
232
}
233
},
234
"contentName": "markup.italic.emph.latex",
235
"end": "\\}",
236
"endCaptures": {
237
"0": {
238
"name": "punctuation.definition.emph.end.latex"
239
}
240
},
241
"name": "meta.function.emph.latex",
242
"patterns": [
243
{
244
"include": "#braces"
245
},
246
{
247
"include": "$self"
248
}
249
]
250
},
251
{
252
"begin": "((\\\\)textit)(\\{)",
253
"captures": {
254
"1": {
255
"name": "support.function.textit.latex"
256
},
257
"2": {
258
"name": "punctuation.definition.function.latex"
259
},
260
"3": {
261
"name": "punctuation.definition.textit.begin.latex"
262
}
263
},
264
"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",
265
"contentName": "markup.italic.textit.latex",
266
"end": "\\}",
267
"endCaptures": {
268
"0": {
269
"name": "punctuation.definition.textit.end.latex"
270
}
271
},
272
"name": "meta.function.textit.latex",
273
"patterns": [
274
{
275
"include": "#braces"
276
},
277
{
278
"include": "$self"
279
}
280
]
281
},
282
{
283
"begin": "((\\\\)textbf)(\\{)",
284
"captures": {
285
"1": {
286
"name": "support.function.textbf.latex"
287
},
288
"2": {
289
"name": "punctuation.definition.function.latex"
290
},
291
"3": {
292
"name": "punctuation.definition.textbf.begin.latex"
293
}
294
},
295
"contentName": "markup.bold.textbf.latex",
296
"end": "\\}",
297
"endCaptures": {
298
"0": {
299
"name": "punctuation.definition.textbf.end.latex"
300
}
301
},
302
"name": "meta.function.textbf.latex",
303
"patterns": [
304
{
305
"include": "#braces"
306
},
307
{
308
"include": "$self"
309
}
310
]
311
},
312
{
313
"begin": "((\\\\)texttt)(\\{)",
314
"captures": {
315
"1": {
316
"name": "support.function.texttt.latex"
317
},
318
"2": {
319
"name": "punctuation.definition.function.latex"
320
},
321
"3": {
322
"name": "punctuation.definition.texttt.begin.latex"
323
}
324
},
325
"contentName": "markup.raw.texttt.latex",
326
"end": "\\}",
327
"endCaptures": {
328
"0": {
329
"name": "punctuation.definition.texttt.end.latex"
330
}
331
},
332
"name": "meta.function.texttt.latex",
333
"patterns": [
334
{
335
"include": "#braces"
336
},
337
{
338
"include": "$self"
339
}
340
]
341
}
342
]
343
},
344
"songs-env": {
345
"patterns": [
346
{
347
"begin": "(\\s*\\\\begin\\{songs\\}\\{.*\\})",
348
"captures": {
349
"1": {
350
"patterns": [
351
{
352
"include": "#macro-with-args-tokenizer"
353
}
354
]
355
}
356
},
357
"contentName": "meta.data.environment.songs.latex",
358
"end": "(\\\\end\\{songs\\}(?:\\s*\\n)?)",
359
"name": "meta.function.environment.songs.latex",
360
"patterns": [
361
{
362
"include": "text.tex.latex#songs-chords"
363
}
364
]
365
},
366
{
367
"comment": "This scope applies songs-environment coloring between \\\\beginsong and \\\\endsong. Useful in separate files without \\\\begin{songs}.",
368
"begin": "\\s*((\\\\)beginsong)(?=\\{)",
369
"captures": {
370
"1": {
371
"name": "support.function.be.latex"
372
},
373
"2": {
374
"name": "punctuation.definition.function.latex"
375
},
376
"3": {
377
"name": "punctuation.definition.arguments.begin.latex"
378
},
379
"4": {
380
"name": "punctuation.definition.arguments.end.latex"
381
}
382
},
383
"end": "((\\\\)endsong)(?:\\s*\\n)?",
384
"name": "meta.function.environment.song.latex",
385
"patterns": [
386
{
387
"include": "#multiline-arg-no-highlight"
388
},
389
{
390
"include": "#multiline-optional-arg-no-highlight"
391
},
392
{
393
"begin": "(?:\\G|(?<=\\]|\\}))\\s*",
394
"end": "\\s*(?=\\\\endsong)",
395
"contentName": "meta.data.environment.song.latex",
396
"patterns": [
397
{
398
"include": "text.tex.latex#songs-chords"
399
}
400
]
401
}
402
]
403
}
404
]
405
},
406
"embedded-code-env": {
407
"patterns": [
408
{
409
"begin": "(?:^\\s*)?\\\\begin\\{(lstlisting|minted|pyglist)\\}(?=\\[|\\{)",
410
"captures": {
411
"0": {
412
"patterns": [
413
{
414
"include": "#macro-with-args-tokenizer"
415
}
416
]
417
}
418
},
419
"end": "\\\\end\\{\\1\\}",
420
"patterns": [
421
{
422
"include": "#multiline-optional-arg-no-highlight"
423
},
424
{
425
"begin": "(?:\\G|(?<=\\]))(\\{)((?:asy|asymptote))(\\})",
426
"beginCaptures": {
427
"1": {
428
"name": "punctuation.definition.arguments.begin.latex"
429
},
430
"2": {
431
"name": "variable.parameter.function.latex"
432
},
433
"3": {
434
"name": "punctuation.definition.arguments.end.latex"
435
}
436
},
437
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
438
"contentName": "source.asy",
439
"patterns": [
440
{
441
"include": "source.asy"
442
}
443
]
444
},
445
{
446
"begin": "(?:\\G|(?<=\\]))(\\{)((?:bash))(\\})",
447
"beginCaptures": {
448
"1": {
449
"name": "punctuation.definition.arguments.begin.latex"
450
},
451
"2": {
452
"name": "variable.parameter.function.latex"
453
},
454
"3": {
455
"name": "punctuation.definition.arguments.end.latex"
456
}
457
},
458
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
459
"contentName": "source.shell",
460
"patterns": [
461
{
462
"include": "source.shell"
463
}
464
]
465
},
466
{
467
"begin": "(?:\\G|(?<=\\]))(\\{)((?:c|cpp))(\\})",
468
"beginCaptures": {
469
"1": {
470
"name": "punctuation.definition.arguments.begin.latex"
471
},
472
"2": {
473
"name": "variable.parameter.function.latex"
474
},
475
"3": {
476
"name": "punctuation.definition.arguments.end.latex"
477
}
478
},
479
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
480
"contentName": "source.cpp.embedded.latex",
481
"patterns": [
482
{
483
"include": "source.cpp.embedded.latex"
484
}
485
]
486
},
487
{
488
"begin": "(?:\\G|(?<=\\]))(\\{)((?:css))(\\})",
489
"beginCaptures": {
490
"1": {
491
"name": "punctuation.definition.arguments.begin.latex"
492
},
493
"2": {
494
"name": "variable.parameter.function.latex"
495
},
496
"3": {
497
"name": "punctuation.definition.arguments.end.latex"
498
}
499
},
500
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
501
"contentName": "source.css",
502
"patterns": [
503
{
504
"include": "source.css"
505
}
506
]
507
},
508
{
509
"begin": "(?:\\G|(?<=\\]))(\\{)((?:gnuplot))(\\})",
510
"beginCaptures": {
511
"1": {
512
"name": "punctuation.definition.arguments.begin.latex"
513
},
514
"2": {
515
"name": "variable.parameter.function.latex"
516
},
517
"3": {
518
"name": "punctuation.definition.arguments.end.latex"
519
}
520
},
521
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
522
"contentName": "source.gnuplot",
523
"patterns": [
524
{
525
"include": "source.gnuplot"
526
}
527
]
528
},
529
{
530
"begin": "(?:\\G|(?<=\\]))(\\{)((?:hs|haskell))(\\})",
531
"beginCaptures": {
532
"1": {
533
"name": "punctuation.definition.arguments.begin.latex"
534
},
535
"2": {
536
"name": "variable.parameter.function.latex"
537
},
538
"3": {
539
"name": "punctuation.definition.arguments.end.latex"
540
}
541
},
542
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
543
"contentName": "source.haskell",
544
"patterns": [
545
{
546
"include": "source.haskell"
547
}
548
]
549
},
550
{
551
"begin": "(?:\\G|(?<=\\]))(\\{)((?:html))(\\})",
552
"beginCaptures": {
553
"1": {
554
"name": "punctuation.definition.arguments.begin.latex"
555
},
556
"2": {
557
"name": "variable.parameter.function.latex"
558
},
559
"3": {
560
"name": "punctuation.definition.arguments.end.latex"
561
}
562
},
563
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
564
"contentName": "text.html",
565
"patterns": [
566
{
567
"include": "text.html.basic"
568
}
569
]
570
},
571
{
572
"begin": "(?:\\G|(?<=\\]))(\\{)((?:java))(\\})",
573
"beginCaptures": {
574
"1": {
575
"name": "punctuation.definition.arguments.begin.latex"
576
},
577
"2": {
578
"name": "variable.parameter.function.latex"
579
},
580
"3": {
581
"name": "punctuation.definition.arguments.end.latex"
582
}
583
},
584
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
585
"contentName": "source.java",
586
"patterns": [
587
{
588
"include": "source.java"
589
}
590
]
591
},
592
{
593
"begin": "(?:\\G|(?<=\\]))(\\{)((?:jl|julia))(\\})",
594
"beginCaptures": {
595
"1": {
596
"name": "punctuation.definition.arguments.begin.latex"
597
},
598
"2": {
599
"name": "variable.parameter.function.latex"
600
},
601
"3": {
602
"name": "punctuation.definition.arguments.end.latex"
603
}
604
},
605
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
606
"contentName": "source.julia",
607
"patterns": [
608
{
609
"include": "source.julia"
610
}
611
]
612
},
613
{
614
"begin": "(?:\\G|(?<=\\]))(\\{)((?:js|javascript))(\\})",
615
"beginCaptures": {
616
"1": {
617
"name": "punctuation.definition.arguments.begin.latex"
618
},
619
"2": {
620
"name": "variable.parameter.function.latex"
621
},
622
"3": {
623
"name": "punctuation.definition.arguments.end.latex"
624
}
625
},
626
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
627
"contentName": "source.js",
628
"patterns": [
629
{
630
"include": "source.js"
631
}
632
]
633
},
634
{
635
"begin": "(?:\\G|(?<=\\]))(\\{)((?:lua))(\\})",
636
"beginCaptures": {
637
"1": {
638
"name": "punctuation.definition.arguments.begin.latex"
639
},
640
"2": {
641
"name": "variable.parameter.function.latex"
642
},
643
"3": {
644
"name": "punctuation.definition.arguments.end.latex"
645
}
646
},
647
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
648
"contentName": "source.lua",
649
"patterns": [
650
{
651
"include": "source.lua"
652
}
653
]
654
},
655
{
656
"begin": "(?:\\G|(?<=\\]))(\\{)((?:py|python|sage))(\\})",
657
"beginCaptures": {
658
"1": {
659
"name": "punctuation.definition.arguments.begin.latex"
660
},
661
"2": {
662
"name": "variable.parameter.function.latex"
663
},
664
"3": {
665
"name": "punctuation.definition.arguments.end.latex"
666
}
667
},
668
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
669
"contentName": "source.python",
670
"patterns": [
671
{
672
"include": "source.python"
673
}
674
]
675
},
676
{
677
"begin": "(?:\\G|(?<=\\]))(\\{)((?:rb|ruby))(\\})",
678
"beginCaptures": {
679
"1": {
680
"name": "punctuation.definition.arguments.begin.latex"
681
},
682
"2": {
683
"name": "variable.parameter.function.latex"
684
},
685
"3": {
686
"name": "punctuation.definition.arguments.end.latex"
687
}
688
},
689
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
690
"contentName": "source.ruby",
691
"patterns": [
692
{
693
"include": "source.ruby"
694
}
695
]
696
},
697
{
698
"begin": "(?:\\G|(?<=\\]))(\\{)((?:rust))(\\})",
699
"beginCaptures": {
700
"1": {
701
"name": "punctuation.definition.arguments.begin.latex"
702
},
703
"2": {
704
"name": "variable.parameter.function.latex"
705
},
706
"3": {
707
"name": "punctuation.definition.arguments.end.latex"
708
}
709
},
710
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
711
"contentName": "source.rust",
712
"patterns": [
713
{
714
"include": "source.rust"
715
}
716
]
717
},
718
{
719
"begin": "(?:\\G|(?<=\\]))(\\{)((?:ts|typescript))(\\})",
720
"beginCaptures": {
721
"1": {
722
"name": "punctuation.definition.arguments.begin.latex"
723
},
724
"2": {
725
"name": "variable.parameter.function.latex"
726
},
727
"3": {
728
"name": "punctuation.definition.arguments.end.latex"
729
}
730
},
731
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
732
"contentName": "source.ts",
733
"patterns": [
734
{
735
"include": "source.ts"
736
}
737
]
738
},
739
{
740
"begin": "(?:\\G|(?<=\\]))(\\{)((?:xml))(\\})",
741
"beginCaptures": {
742
"1": {
743
"name": "punctuation.definition.arguments.begin.latex"
744
},
745
"2": {
746
"name": "variable.parameter.function.latex"
747
},
748
"3": {
749
"name": "punctuation.definition.arguments.end.latex"
750
}
751
},
752
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
753
"contentName": "text.xml",
754
"patterns": [
755
{
756
"include": "text.xml"
757
}
758
]
759
},
760
{
761
"begin": "(?:\\G|(?<=\\]))(\\{)((?:yaml))(\\})",
762
"beginCaptures": {
763
"1": {
764
"name": "punctuation.definition.arguments.begin.latex"
765
},
766
"2": {
767
"name": "variable.parameter.function.latex"
768
},
769
"3": {
770
"name": "punctuation.definition.arguments.end.latex"
771
}
772
},
773
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
774
"contentName": "source.yaml",
775
"patterns": [
776
{
777
"include": "source.yaml"
778
}
779
]
780
},
781
{
782
"begin": "(?:\\G|(?<=\\]))(\\{)([a-zA-Z]*)(\\})",
783
"beginCaptures": {
784
"1": {
785
"name": "punctuation.definition.arguments.begin.latex"
786
},
787
"2": {
788
"name": "variable.parameter.function.latex"
789
},
790
"3": {
791
"name": "punctuation.definition.arguments.end.latex"
792
}
793
},
794
"contentName": "meta.function.embedded.latex",
795
"end": "^\\s*(?=\\\\end\\{(?:lstlisting|minted|pyglist)\\})",
796
"name": "meta.embedded.block.generic.latex"
797
}
798
]
799
},
800
{
801
"begin": "\\s*\\\\begin\\{(?:asy|asycode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
802
"end": "\\s*\\\\end\\{(?:asy|asycode)\\*?\\}",
803
"captures": {
804
"0": {
805
"patterns": [
806
{
807
"include": "#macro-with-args-tokenizer"
808
}
809
]
810
}
811
},
812
"patterns": [
813
{
814
"include": "#multiline-optional-arg-no-highlight"
815
},
816
{
817
"begin": "(?:\\G|(?<=\\]))(\\{)",
818
"beginCaptures": {
819
"1": {
820
"name": "punctuation.definition.arguments.begin.latex"
821
}
822
},
823
"end": "(\\})",
824
"endCaptures": {
825
"1": {
826
"name": "punctuation.definition.arguments.end.latex"
827
}
828
},
829
"contentName": "variable.parameter.function.latex"
830
},
831
{
832
"begin": "^(?=\\s*)",
833
"end": "^\\s*(?=\\\\end\\{(?:asy|asycode)\\*?\\})",
834
"contentName": "source.asymptote",
835
"patterns": [
836
{
837
"include": "source.asymptote"
838
}
839
]
840
}
841
]
842
},
843
{
844
"begin": "\\s*\\\\begin\\{(?:cppcode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
845
"end": "\\s*\\\\end\\{(?:cppcode)\\*?\\}",
846
"captures": {
847
"0": {
848
"patterns": [
849
{
850
"include": "#macro-with-args-tokenizer"
851
}
852
]
853
}
854
},
855
"patterns": [
856
{
857
"include": "#multiline-optional-arg-no-highlight"
858
},
859
{
860
"begin": "(?:\\G|(?<=\\]))(\\{)",
861
"beginCaptures": {
862
"1": {
863
"name": "punctuation.definition.arguments.begin.latex"
864
}
865
},
866
"end": "(\\})",
867
"endCaptures": {
868
"1": {
869
"name": "punctuation.definition.arguments.end.latex"
870
}
871
},
872
"contentName": "variable.parameter.function.latex"
873
},
874
{
875
"begin": "^(?=\\s*)",
876
"end": "^\\s*(?=\\\\end\\{(?:cppcode)\\*?\\})",
877
"contentName": "source.cpp.embedded.latex",
878
"patterns": [
879
{
880
"include": "source.cpp.embedded.latex"
881
}
882
]
883
}
884
]
885
},
886
{
887
"begin": "\\s*\\\\begin\\{(?:dot2tex|dotcode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
888
"end": "\\s*\\\\end\\{(?:dot2tex|dotcode)\\*?\\}",
889
"captures": {
890
"0": {
891
"patterns": [
892
{
893
"include": "#macro-with-args-tokenizer"
894
}
895
]
896
}
897
},
898
"patterns": [
899
{
900
"include": "#multiline-optional-arg-no-highlight"
901
},
902
{
903
"begin": "(?:\\G|(?<=\\]))(\\{)",
904
"beginCaptures": {
905
"1": {
906
"name": "punctuation.definition.arguments.begin.latex"
907
}
908
},
909
"end": "(\\})",
910
"endCaptures": {
911
"1": {
912
"name": "punctuation.definition.arguments.end.latex"
913
}
914
},
915
"contentName": "variable.parameter.function.latex"
916
},
917
{
918
"begin": "^(?=\\s*)",
919
"end": "^\\s*(?=\\\\end\\{(?:dot2tex|dotcode)\\*?\\})",
920
"contentName": "source.dot",
921
"patterns": [
922
{
923
"include": "source.dot"
924
}
925
]
926
}
927
]
928
},
929
{
930
"begin": "\\s*\\\\begin\\{(?:gnuplot)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
931
"end": "\\s*\\\\end\\{(?:gnuplot)\\*?\\}",
932
"captures": {
933
"0": {
934
"patterns": [
935
{
936
"include": "#macro-with-args-tokenizer"
937
}
938
]
939
}
940
},
941
"patterns": [
942
{
943
"include": "#multiline-optional-arg-no-highlight"
944
},
945
{
946
"begin": "(?:\\G|(?<=\\]))(\\{)",
947
"beginCaptures": {
948
"1": {
949
"name": "punctuation.definition.arguments.begin.latex"
950
}
951
},
952
"end": "(\\})",
953
"endCaptures": {
954
"1": {
955
"name": "punctuation.definition.arguments.end.latex"
956
}
957
},
958
"contentName": "variable.parameter.function.latex"
959
},
960
{
961
"begin": "^(?=\\s*)",
962
"end": "^\\s*(?=\\\\end\\{(?:gnuplot)\\*?\\})",
963
"contentName": "source.gnuplot",
964
"patterns": [
965
{
966
"include": "source.gnuplot"
967
}
968
]
969
}
970
]
971
},
972
{
973
"begin": "\\s*\\\\begin\\{(?:hscode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
974
"end": "\\s*\\\\end\\{(?:hscode)\\*?\\}",
975
"captures": {
976
"0": {
977
"patterns": [
978
{
979
"include": "#macro-with-args-tokenizer"
980
}
981
]
982
}
983
},
984
"patterns": [
985
{
986
"include": "#multiline-optional-arg-no-highlight"
987
},
988
{
989
"begin": "(?:\\G|(?<=\\]))(\\{)",
990
"beginCaptures": {
991
"1": {
992
"name": "punctuation.definition.arguments.begin.latex"
993
}
994
},
995
"end": "(\\})",
996
"endCaptures": {
997
"1": {
998
"name": "punctuation.definition.arguments.end.latex"
999
}
1000
},
1001
"contentName": "variable.parameter.function.latex"
1002
},
1003
{
1004
"begin": "^(?=\\s*)",
1005
"end": "^\\s*(?=\\\\end\\{(?:hscode)\\*?\\})",
1006
"contentName": "source.haskell",
1007
"patterns": [
1008
{
1009
"include": "source.haskell"
1010
}
1011
]
1012
}
1013
]
1014
},
1015
{
1016
"begin": "\\s*\\\\begin\\{(?:javacode|javaverbatim|javablock|javaconcode|javaconsole|javaconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
1017
"end": "\\s*\\\\end\\{(?:javacode|javaverbatim|javablock|javaconcode|javaconsole|javaconverbatim)\\*?\\}",
1018
"captures": {
1019
"0": {
1020
"patterns": [
1021
{
1022
"include": "#macro-with-args-tokenizer"
1023
}
1024
]
1025
}
1026
},
1027
"patterns": [
1028
{
1029
"include": "#multiline-optional-arg-no-highlight"
1030
},
1031
{
1032
"begin": "(?:\\G|(?<=\\]))(\\{)",
1033
"beginCaptures": {
1034
"1": {
1035
"name": "punctuation.definition.arguments.begin.latex"
1036
}
1037
},
1038
"end": "(\\})",
1039
"endCaptures": {
1040
"1": {
1041
"name": "punctuation.definition.arguments.end.latex"
1042
}
1043
},
1044
"contentName": "variable.parameter.function.latex"
1045
},
1046
{
1047
"begin": "^(?=\\s*)",
1048
"end": "^\\s*(?=\\\\end\\{(?:javacode|javaverbatim|javablock|javaconcode|javaconsole|javaconverbatim)\\*?\\})",
1049
"contentName": "source.java",
1050
"patterns": [
1051
{
1052
"include": "source.java"
1053
}
1054
]
1055
}
1056
]
1057
},
1058
{
1059
"begin": "\\s*\\\\begin\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
1060
"end": "\\s*\\\\end\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\}",
1061
"captures": {
1062
"0": {
1063
"patterns": [
1064
{
1065
"include": "#macro-with-args-tokenizer"
1066
}
1067
]
1068
}
1069
},
1070
"patterns": [
1071
{
1072
"include": "#multiline-optional-arg-no-highlight"
1073
},
1074
{
1075
"begin": "(?:\\G|(?<=\\]))(\\{)",
1076
"beginCaptures": {
1077
"1": {
1078
"name": "punctuation.definition.arguments.begin.latex"
1079
}
1080
},
1081
"end": "(\\})",
1082
"endCaptures": {
1083
"1": {
1084
"name": "punctuation.definition.arguments.end.latex"
1085
}
1086
},
1087
"contentName": "variable.parameter.function.latex"
1088
},
1089
{
1090
"begin": "^(?=\\s*)",
1091
"end": "^\\s*(?=\\\\end\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\})",
1092
"contentName": "source.julia",
1093
"patterns": [
1094
{
1095
"include": "source.julia"
1096
}
1097
]
1098
}
1099
]
1100
},
1101
{
1102
"begin": "\\s*\\\\begin\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
1103
"end": "\\s*\\\\end\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\}",
1104
"captures": {
1105
"0": {
1106
"patterns": [
1107
{
1108
"include": "#macro-with-args-tokenizer"
1109
}
1110
]
1111
}
1112
},
1113
"patterns": [
1114
{
1115
"include": "#multiline-optional-arg-no-highlight"
1116
},
1117
{
1118
"begin": "(?:\\G|(?<=\\]))(\\{)",
1119
"beginCaptures": {
1120
"1": {
1121
"name": "punctuation.definition.arguments.begin.latex"
1122
}
1123
},
1124
"end": "(\\})",
1125
"endCaptures": {
1126
"1": {
1127
"name": "punctuation.definition.arguments.end.latex"
1128
}
1129
},
1130
"contentName": "variable.parameter.function.latex"
1131
},
1132
{
1133
"begin": "^(?=\\s*)",
1134
"end": "^\\s*(?=\\\\end\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\})",
1135
"contentName": "source.julia",
1136
"patterns": [
1137
{
1138
"include": "source.julia"
1139
}
1140
]
1141
}
1142
]
1143
},
1144
{
1145
"begin": "\\s*\\\\begin\\{(?:luacode|luadraw)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
1146
"end": "\\s*\\\\end\\{(?:luacode|luadraw)\\*?\\}",
1147
"captures": {
1148
"0": {
1149
"patterns": [
1150
{
1151
"include": "#macro-with-args-tokenizer"
1152
}
1153
]
1154
}
1155
},
1156
"patterns": [
1157
{
1158
"include": "#multiline-optional-arg-no-highlight"
1159
},
1160
{
1161
"begin": "(?:\\G|(?<=\\]))(\\{)",
1162
"beginCaptures": {
1163
"1": {
1164
"name": "punctuation.definition.arguments.begin.latex"
1165
}
1166
},
1167
"end": "(\\})",
1168
"endCaptures": {
1169
"1": {
1170
"name": "punctuation.definition.arguments.end.latex"
1171
}
1172
},
1173
"contentName": "variable.parameter.function.latex"
1174
},
1175
{
1176
"begin": "^(?=\\s*)",
1177
"end": "^\\s*(?=\\\\end\\{(?:luacode|luadraw)\\*?\\})",
1178
"contentName": "source.lua",
1179
"patterns": [
1180
{
1181
"include": "source.lua"
1182
}
1183
]
1184
}
1185
]
1186
},
1187
{
1188
"begin": "\\s*\\\\begin\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
1189
"end": "\\s*\\\\end\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\}",
1190
"captures": {
1191
"0": {
1192
"patterns": [
1193
{
1194
"include": "#macro-with-args-tokenizer"
1195
}
1196
]
1197
}
1198
},
1199
"patterns": [
1200
{
1201
"include": "#multiline-optional-arg-no-highlight"
1202
},
1203
{
1204
"begin": "(?:\\G|(?<=\\]))(\\{)",
1205
"beginCaptures": {
1206
"1": {
1207
"name": "punctuation.definition.arguments.begin.latex"
1208
}
1209
},
1210
"end": "(\\})",
1211
"endCaptures": {
1212
"1": {
1213
"name": "punctuation.definition.arguments.end.latex"
1214
}
1215
},
1216
"contentName": "variable.parameter.function.latex"
1217
},
1218
{
1219
"begin": "^(?=\\s*)",
1220
"end": "^\\s*(?=\\\\end\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\})",
1221
"contentName": "source.python",
1222
"patterns": [
1223
{
1224
"include": "source.python"
1225
}
1226
]
1227
}
1228
]
1229
},
1230
{
1231
"begin": "\\s*\\\\begin\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
1232
"end": "\\s*\\\\end\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\}",
1233
"captures": {
1234
"0": {
1235
"patterns": [
1236
{
1237
"include": "#macro-with-args-tokenizer"
1238
}
1239
]
1240
}
1241
},
1242
"patterns": [
1243
{
1244
"include": "#multiline-optional-arg-no-highlight"
1245
},
1246
{
1247
"begin": "(?:\\G|(?<=\\]))(\\{)",
1248
"beginCaptures": {
1249
"1": {
1250
"name": "punctuation.definition.arguments.begin.latex"
1251
}
1252
},
1253
"end": "(\\})",
1254
"endCaptures": {
1255
"1": {
1256
"name": "punctuation.definition.arguments.end.latex"
1257
}
1258
},
1259
"contentName": "variable.parameter.function.latex"
1260
},
1261
{
1262
"begin": "^(?=\\s*)",
1263
"end": "^\\s*(?=\\\\end\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\})",
1264
"contentName": "source.python",
1265
"patterns": [
1266
{
1267
"include": "source.python"
1268
}
1269
]
1270
}
1271
]
1272
},
1273
{
1274
"begin": "\\s*\\\\begin\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
1275
"end": "\\s*\\\\end\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\}",
1276
"captures": {
1277
"0": {
1278
"patterns": [
1279
{
1280
"include": "#macro-with-args-tokenizer"
1281
}
1282
]
1283
}
1284
},
1285
"patterns": [
1286
{
1287
"include": "#multiline-optional-arg-no-highlight"
1288
},
1289
{
1290
"begin": "(?:\\G|(?<=\\]))(\\{)",
1291
"beginCaptures": {
1292
"1": {
1293
"name": "punctuation.definition.arguments.begin.latex"
1294
}
1295
},
1296
"end": "(\\})",
1297
"endCaptures": {
1298
"1": {
1299
"name": "punctuation.definition.arguments.end.latex"
1300
}
1301
},
1302
"contentName": "variable.parameter.function.latex"
1303
},
1304
{
1305
"begin": "^(?=\\s*)",
1306
"end": "^\\s*(?=\\\\end\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\})",
1307
"contentName": "source.python",
1308
"patterns": [
1309
{
1310
"include": "source.python"
1311
}
1312
]
1313
}
1314
]
1315
},
1316
{
1317
"begin": "\\s*\\\\begin\\{(?:scalacode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
1318
"end": "\\s*\\\\end\\{(?:scalacode)\\*?\\}",
1319
"captures": {
1320
"0": {
1321
"patterns": [
1322
{
1323
"include": "#macro-with-args-tokenizer"
1324
}
1325
]
1326
}
1327
},
1328
"patterns": [
1329
{
1330
"include": "#multiline-optional-arg-no-highlight"
1331
},
1332
{
1333
"begin": "(?:\\G|(?<=\\]))(\\{)",
1334
"beginCaptures": {
1335
"1": {
1336
"name": "punctuation.definition.arguments.begin.latex"
1337
}
1338
},
1339
"end": "(\\})",
1340
"endCaptures": {
1341
"1": {
1342
"name": "punctuation.definition.arguments.end.latex"
1343
}
1344
},
1345
"contentName": "variable.parameter.function.latex"
1346
},
1347
{
1348
"begin": "^(?=\\s*)",
1349
"end": "^\\s*(?=\\\\end\\{(?:scalacode)\\*?\\})",
1350
"contentName": "source.scala",
1351
"patterns": [
1352
{
1353
"include": "source.scala"
1354
}
1355
]
1356
}
1357
]
1358
},
1359
{
1360
"begin": "\\s*\\\\begin\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
1361
"end": "\\s*\\\\end\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\}",
1362
"captures": {
1363
"0": {
1364
"patterns": [
1365
{
1366
"include": "#macro-with-args-tokenizer"
1367
}
1368
]
1369
}
1370
},
1371
"patterns": [
1372
{
1373
"include": "#multiline-optional-arg-no-highlight"
1374
},
1375
{
1376
"begin": "(?:\\G|(?<=\\]))(\\{)",
1377
"beginCaptures": {
1378
"1": {
1379
"name": "punctuation.definition.arguments.begin.latex"
1380
}
1381
},
1382
"end": "(\\})",
1383
"endCaptures": {
1384
"1": {
1385
"name": "punctuation.definition.arguments.end.latex"
1386
}
1387
},
1388
"contentName": "variable.parameter.function.latex"
1389
},
1390
{
1391
"begin": "^(?=\\s*)",
1392
"end": "^\\s*(?=\\\\end\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\})",
1393
"contentName": "source.python",
1394
"patterns": [
1395
{
1396
"include": "source.python"
1397
}
1398
]
1399
}
1400
]
1401
},
1402
{
1403
"begin": "\\s*\\\\begin\\{((?:[a-zA-Z]*code|lstlisting|minted|pyglist)\\*?)\\}(?:\\[.*\\])?(?:\\{.*\\})?",
1404
"captures": {
1405
"0": {
1406
"patterns": [
1407
{
1408
"include": "#macro-with-args-tokenizer"
1409
}
1410
]
1411
}
1412
},
1413
"contentName": "meta.function.embedded.latex",
1414
"end": "\\\\end\\{\\1\\}(?:\\s*\\n)?",
1415
"name": "meta.embedded.block.generic.latex"
1416
},
1417
{
1418
"begin": "((?:^\\s*)?\\\\begin\\{((?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?))\\})(?:\\[[^\\]]*\\]){,2}(?=\\{)",
1419
"captures": {
1420
"1": {
1421
"patterns": [
1422
{
1423
"include": "#macro-with-args-tokenizer"
1424
}
1425
]
1426
}
1427
},
1428
"end": "(\\\\end\\{\\2\\})",
1429
"patterns": [
1430
{
1431
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:asy|asymptote)",
1432
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1433
"beginCaptures": {
1434
"1": {
1435
"name": "punctuation.definition.arguments.begin.latex"
1436
}
1437
},
1438
"patterns": [
1439
{
1440
"begin": "\\G",
1441
"end": "(\\})\\s*$",
1442
"endCaptures": {
1443
"1": {
1444
"name": "punctuation.definition.arguments.end.latex"
1445
}
1446
},
1447
"patterns": [
1448
{
1449
"include": "text.tex#braces"
1450
},
1451
{
1452
"include": "$self"
1453
}
1454
]
1455
},
1456
{
1457
"begin": "^(\\s*)",
1458
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1459
"contentName": "source.asy",
1460
"patterns": [
1461
{
1462
"include": "source.asy"
1463
}
1464
]
1465
}
1466
]
1467
},
1468
{
1469
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:bash)",
1470
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1471
"beginCaptures": {
1472
"1": {
1473
"name": "punctuation.definition.arguments.begin.latex"
1474
}
1475
},
1476
"patterns": [
1477
{
1478
"begin": "\\G",
1479
"end": "(\\})\\s*$",
1480
"endCaptures": {
1481
"1": {
1482
"name": "punctuation.definition.arguments.end.latex"
1483
}
1484
},
1485
"patterns": [
1486
{
1487
"include": "text.tex#braces"
1488
},
1489
{
1490
"include": "$self"
1491
}
1492
]
1493
},
1494
{
1495
"begin": "^(\\s*)",
1496
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1497
"contentName": "source.shell",
1498
"patterns": [
1499
{
1500
"include": "source.shell"
1501
}
1502
]
1503
}
1504
]
1505
},
1506
{
1507
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:c|cpp)",
1508
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1509
"beginCaptures": {
1510
"1": {
1511
"name": "punctuation.definition.arguments.begin.latex"
1512
}
1513
},
1514
"patterns": [
1515
{
1516
"begin": "\\G",
1517
"end": "(\\})\\s*$",
1518
"endCaptures": {
1519
"1": {
1520
"name": "punctuation.definition.arguments.end.latex"
1521
}
1522
},
1523
"patterns": [
1524
{
1525
"include": "text.tex#braces"
1526
},
1527
{
1528
"include": "$self"
1529
}
1530
]
1531
},
1532
{
1533
"begin": "^(\\s*)",
1534
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1535
"contentName": "source.cpp.embedded.latex",
1536
"patterns": [
1537
{
1538
"include": "source.cpp.embedded.latex"
1539
}
1540
]
1541
}
1542
]
1543
},
1544
{
1545
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:css)",
1546
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1547
"beginCaptures": {
1548
"1": {
1549
"name": "punctuation.definition.arguments.begin.latex"
1550
}
1551
},
1552
"patterns": [
1553
{
1554
"begin": "\\G",
1555
"end": "(\\})\\s*$",
1556
"endCaptures": {
1557
"1": {
1558
"name": "punctuation.definition.arguments.end.latex"
1559
}
1560
},
1561
"patterns": [
1562
{
1563
"include": "text.tex#braces"
1564
},
1565
{
1566
"include": "$self"
1567
}
1568
]
1569
},
1570
{
1571
"begin": "^(\\s*)",
1572
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1573
"contentName": "source.css",
1574
"patterns": [
1575
{
1576
"include": "source.css"
1577
}
1578
]
1579
}
1580
]
1581
},
1582
{
1583
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:gnuplot)",
1584
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1585
"beginCaptures": {
1586
"1": {
1587
"name": "punctuation.definition.arguments.begin.latex"
1588
}
1589
},
1590
"patterns": [
1591
{
1592
"begin": "\\G",
1593
"end": "(\\})\\s*$",
1594
"endCaptures": {
1595
"1": {
1596
"name": "punctuation.definition.arguments.end.latex"
1597
}
1598
},
1599
"patterns": [
1600
{
1601
"include": "text.tex#braces"
1602
},
1603
{
1604
"include": "$self"
1605
}
1606
]
1607
},
1608
{
1609
"begin": "^(\\s*)",
1610
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1611
"contentName": "source.gnuplot",
1612
"patterns": [
1613
{
1614
"include": "source.gnuplot"
1615
}
1616
]
1617
}
1618
]
1619
},
1620
{
1621
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:hs|haskell)",
1622
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1623
"beginCaptures": {
1624
"1": {
1625
"name": "punctuation.definition.arguments.begin.latex"
1626
}
1627
},
1628
"patterns": [
1629
{
1630
"begin": "\\G",
1631
"end": "(\\})\\s*$",
1632
"endCaptures": {
1633
"1": {
1634
"name": "punctuation.definition.arguments.end.latex"
1635
}
1636
},
1637
"patterns": [
1638
{
1639
"include": "text.tex#braces"
1640
},
1641
{
1642
"include": "$self"
1643
}
1644
]
1645
},
1646
{
1647
"begin": "^(\\s*)",
1648
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1649
"contentName": "source.haskell",
1650
"patterns": [
1651
{
1652
"include": "source.haskell"
1653
}
1654
]
1655
}
1656
]
1657
},
1658
{
1659
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:html)",
1660
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1661
"beginCaptures": {
1662
"1": {
1663
"name": "punctuation.definition.arguments.begin.latex"
1664
}
1665
},
1666
"patterns": [
1667
{
1668
"begin": "\\G",
1669
"end": "(\\})\\s*$",
1670
"endCaptures": {
1671
"1": {
1672
"name": "punctuation.definition.arguments.end.latex"
1673
}
1674
},
1675
"patterns": [
1676
{
1677
"include": "text.tex#braces"
1678
},
1679
{
1680
"include": "$self"
1681
}
1682
]
1683
},
1684
{
1685
"begin": "^(\\s*)",
1686
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1687
"contentName": "text.html",
1688
"patterns": [
1689
{
1690
"include": "text.html.basic"
1691
}
1692
]
1693
}
1694
]
1695
},
1696
{
1697
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:java)",
1698
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1699
"beginCaptures": {
1700
"1": {
1701
"name": "punctuation.definition.arguments.begin.latex"
1702
}
1703
},
1704
"patterns": [
1705
{
1706
"begin": "\\G",
1707
"end": "(\\})\\s*$",
1708
"endCaptures": {
1709
"1": {
1710
"name": "punctuation.definition.arguments.end.latex"
1711
}
1712
},
1713
"patterns": [
1714
{
1715
"include": "text.tex#braces"
1716
},
1717
{
1718
"include": "$self"
1719
}
1720
]
1721
},
1722
{
1723
"begin": "^(\\s*)",
1724
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1725
"contentName": "source.java",
1726
"patterns": [
1727
{
1728
"include": "source.java"
1729
}
1730
]
1731
}
1732
]
1733
},
1734
{
1735
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:jl|julia)",
1736
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1737
"beginCaptures": {
1738
"1": {
1739
"name": "punctuation.definition.arguments.begin.latex"
1740
}
1741
},
1742
"patterns": [
1743
{
1744
"begin": "\\G",
1745
"end": "(\\})\\s*$",
1746
"endCaptures": {
1747
"1": {
1748
"name": "punctuation.definition.arguments.end.latex"
1749
}
1750
},
1751
"patterns": [
1752
{
1753
"include": "text.tex#braces"
1754
},
1755
{
1756
"include": "$self"
1757
}
1758
]
1759
},
1760
{
1761
"begin": "^(\\s*)",
1762
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1763
"contentName": "source.julia",
1764
"patterns": [
1765
{
1766
"include": "source.julia"
1767
}
1768
]
1769
}
1770
]
1771
},
1772
{
1773
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:js|javascript)",
1774
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1775
"beginCaptures": {
1776
"1": {
1777
"name": "punctuation.definition.arguments.begin.latex"
1778
}
1779
},
1780
"patterns": [
1781
{
1782
"begin": "\\G",
1783
"end": "(\\})\\s*$",
1784
"endCaptures": {
1785
"1": {
1786
"name": "punctuation.definition.arguments.end.latex"
1787
}
1788
},
1789
"patterns": [
1790
{
1791
"include": "text.tex#braces"
1792
},
1793
{
1794
"include": "$self"
1795
}
1796
]
1797
},
1798
{
1799
"begin": "^(\\s*)",
1800
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1801
"contentName": "source.js",
1802
"patterns": [
1803
{
1804
"include": "source.js"
1805
}
1806
]
1807
}
1808
]
1809
},
1810
{
1811
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:lua)",
1812
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1813
"beginCaptures": {
1814
"1": {
1815
"name": "punctuation.definition.arguments.begin.latex"
1816
}
1817
},
1818
"patterns": [
1819
{
1820
"begin": "\\G",
1821
"end": "(\\})\\s*$",
1822
"endCaptures": {
1823
"1": {
1824
"name": "punctuation.definition.arguments.end.latex"
1825
}
1826
},
1827
"patterns": [
1828
{
1829
"include": "text.tex#braces"
1830
},
1831
{
1832
"include": "$self"
1833
}
1834
]
1835
},
1836
{
1837
"begin": "^(\\s*)",
1838
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1839
"contentName": "source.lua",
1840
"patterns": [
1841
{
1842
"include": "source.lua"
1843
}
1844
]
1845
}
1846
]
1847
},
1848
{
1849
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:py|python|sage)",
1850
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1851
"beginCaptures": {
1852
"1": {
1853
"name": "punctuation.definition.arguments.begin.latex"
1854
}
1855
},
1856
"patterns": [
1857
{
1858
"begin": "\\G",
1859
"end": "(\\})\\s*$",
1860
"endCaptures": {
1861
"1": {
1862
"name": "punctuation.definition.arguments.end.latex"
1863
}
1864
},
1865
"patterns": [
1866
{
1867
"include": "text.tex#braces"
1868
},
1869
{
1870
"include": "$self"
1871
}
1872
]
1873
},
1874
{
1875
"begin": "^(\\s*)",
1876
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1877
"contentName": "source.python",
1878
"patterns": [
1879
{
1880
"include": "source.python"
1881
}
1882
]
1883
}
1884
]
1885
},
1886
{
1887
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:rb|ruby)",
1888
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1889
"beginCaptures": {
1890
"1": {
1891
"name": "punctuation.definition.arguments.begin.latex"
1892
}
1893
},
1894
"patterns": [
1895
{
1896
"begin": "\\G",
1897
"end": "(\\})\\s*$",
1898
"endCaptures": {
1899
"1": {
1900
"name": "punctuation.definition.arguments.end.latex"
1901
}
1902
},
1903
"patterns": [
1904
{
1905
"include": "text.tex#braces"
1906
},
1907
{
1908
"include": "$self"
1909
}
1910
]
1911
},
1912
{
1913
"begin": "^(\\s*)",
1914
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1915
"contentName": "source.ruby",
1916
"patterns": [
1917
{
1918
"include": "source.ruby"
1919
}
1920
]
1921
}
1922
]
1923
},
1924
{
1925
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:rust)",
1926
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1927
"beginCaptures": {
1928
"1": {
1929
"name": "punctuation.definition.arguments.begin.latex"
1930
}
1931
},
1932
"patterns": [
1933
{
1934
"begin": "\\G",
1935
"end": "(\\})\\s*$",
1936
"endCaptures": {
1937
"1": {
1938
"name": "punctuation.definition.arguments.end.latex"
1939
}
1940
},
1941
"patterns": [
1942
{
1943
"include": "text.tex#braces"
1944
},
1945
{
1946
"include": "$self"
1947
}
1948
]
1949
},
1950
{
1951
"begin": "^(\\s*)",
1952
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1953
"contentName": "source.rust",
1954
"patterns": [
1955
{
1956
"include": "source.rust"
1957
}
1958
]
1959
}
1960
]
1961
},
1962
{
1963
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:ts|typescript)",
1964
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1965
"beginCaptures": {
1966
"1": {
1967
"name": "punctuation.definition.arguments.begin.latex"
1968
}
1969
},
1970
"patterns": [
1971
{
1972
"begin": "\\G",
1973
"end": "(\\})\\s*$",
1974
"endCaptures": {
1975
"1": {
1976
"name": "punctuation.definition.arguments.end.latex"
1977
}
1978
},
1979
"patterns": [
1980
{
1981
"include": "text.tex#braces"
1982
},
1983
{
1984
"include": "$self"
1985
}
1986
]
1987
},
1988
{
1989
"begin": "^(\\s*)",
1990
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
1991
"contentName": "source.ts",
1992
"patterns": [
1993
{
1994
"include": "source.ts"
1995
}
1996
]
1997
}
1998
]
1999
},
2000
{
2001
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:xml)",
2002
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
2003
"beginCaptures": {
2004
"1": {
2005
"name": "punctuation.definition.arguments.begin.latex"
2006
}
2007
},
2008
"patterns": [
2009
{
2010
"begin": "\\G",
2011
"end": "(\\})\\s*$",
2012
"endCaptures": {
2013
"1": {
2014
"name": "punctuation.definition.arguments.end.latex"
2015
}
2016
},
2017
"patterns": [
2018
{
2019
"include": "text.tex#braces"
2020
},
2021
{
2022
"include": "$self"
2023
}
2024
]
2025
},
2026
{
2027
"begin": "^(\\s*)",
2028
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
2029
"contentName": "text.xml",
2030
"patterns": [
2031
{
2032
"include": "text.xml"
2033
}
2034
]
2035
}
2036
]
2037
},
2038
{
2039
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:yaml)",
2040
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
2041
"beginCaptures": {
2042
"1": {
2043
"name": "punctuation.definition.arguments.begin.latex"
2044
}
2045
},
2046
"patterns": [
2047
{
2048
"begin": "\\G",
2049
"end": "(\\})\\s*$",
2050
"endCaptures": {
2051
"1": {
2052
"name": "punctuation.definition.arguments.end.latex"
2053
}
2054
},
2055
"patterns": [
2056
{
2057
"include": "text.tex#braces"
2058
},
2059
{
2060
"include": "$self"
2061
}
2062
]
2063
},
2064
{
2065
"begin": "^(\\s*)",
2066
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
2067
"contentName": "source.yaml",
2068
"patterns": [
2069
{
2070
"include": "source.yaml"
2071
}
2072
]
2073
}
2074
]
2075
},
2076
{
2077
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:tikz|tikzpicture)",
2078
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
2079
"beginCaptures": {
2080
"1": {
2081
"name": "punctuation.definition.arguments.begin.latex"
2082
}
2083
},
2084
"patterns": [
2085
{
2086
"begin": "\\G",
2087
"end": "(\\})\\s*$",
2088
"endCaptures": {
2089
"1": {
2090
"name": "punctuation.definition.arguments.end.latex"
2091
}
2092
},
2093
"patterns": [
2094
{
2095
"include": "text.tex#braces"
2096
},
2097
{
2098
"include": "$self"
2099
}
2100
]
2101
},
2102
{
2103
"begin": "^(\\s*)",
2104
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
2105
"contentName": "text.tex.latex",
2106
"patterns": [
2107
{
2108
"include": "text.tex.latex"
2109
}
2110
]
2111
}
2112
]
2113
},
2114
{
2115
"begin": "\\G(\\{)",
2116
"beginCaptures": {
2117
"1": {
2118
"name": "punctuation.definition.arguments.begin.latex"
2119
}
2120
},
2121
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
2122
"patterns": [
2123
{
2124
"begin": "\\G",
2125
"end": "(\\})\\s*$",
2126
"endCaptures": {
2127
"1": {
2128
"name": "punctuation.definition.arguments.end.latex"
2129
}
2130
},
2131
"patterns": [
2132
{
2133
"include": "text.tex#braces"
2134
},
2135
{
2136
"include": "$self"
2137
}
2138
]
2139
},
2140
{
2141
"begin": "^(\\s*)",
2142
"contentName": "meta.function.embedded.latex",
2143
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
2144
"name": "meta.embedded.block.generic.latex"
2145
}
2146
]
2147
}
2148
]
2149
},
2150
{
2151
"begin": "(?:^\\s*)?\\\\begin\\{(terminal\\*?)\\}(?=\\[|\\{)",
2152
"captures": {
2153
"0": {
2154
"patterns": [
2155
{
2156
"include": "#macro-with-args-tokenizer"
2157
}
2158
]
2159
}
2160
},
2161
"end": "\\\\end\\{\\1\\}",
2162
"patterns": [
2163
{
2164
"include": "#multiline-optional-arg-no-highlight"
2165
},
2166
{
2167
"begin": "(?:\\G|(?<=\\]))(\\{)([a-zA-Z]*)(\\})",
2168
"beginCaptures": {
2169
"1": {
2170
"name": "punctuation.definition.arguments.begin.latex"
2171
},
2172
"2": {
2173
"name": "variable.parameter.function.latex"
2174
},
2175
"3": {
2176
"name": "punctuation.definition.arguments.end.latex"
2177
}
2178
},
2179
"contentName": "meta.function.embedded.latex",
2180
"end": "^\\s*(?=\\\\end\\{terminal\\*?\\})",
2181
"name": "meta.embedded.block.generic.latex"
2182
}
2183
]
2184
}
2185
]
2186
},
2187
"verbatim-env": {
2188
"patterns": [
2189
{
2190
"begin": "(\\s*\\\\begin\\{((?:fboxv|boxedv|V|v|spv)erbatim\\*?)\\})",
2191
"captures": {
2192
"1": {
2193
"patterns": [
2194
{
2195
"include": "#macro-with-args-tokenizer"
2196
}
2197
]
2198
}
2199
},
2200
"contentName": "markup.raw.verbatim.latex",
2201
"end": "(\\\\end\\{\\2\\})",
2202
"name": "meta.function.verbatim.latex"
2203
},
2204
{
2205
"begin": "(\\s*\\\\begin\\{VerbatimOut\\}\\{[^\\}]*\\})",
2206
"captures": {
2207
"1": {
2208
"patterns": [
2209
{
2210
"include": "#macro-with-args-tokenizer"
2211
}
2212
]
2213
}
2214
},
2215
"contentName": "markup.raw.verbatim.latex",
2216
"end": "(\\\\end\\{\\VerbatimOut\\})",
2217
"name": "meta.function.verbatim.latex"
2218
},
2219
{
2220
"begin": "(\\s*\\\\begin\\{alltt\\})",
2221
"captures": {
2222
"1": {
2223
"patterns": [
2224
{
2225
"include": "#macro-with-args-tokenizer"
2226
}
2227
]
2228
}
2229
},
2230
"contentName": "markup.raw.verbatim.latex",
2231
"end": "(\\\\end\\{alltt\\})",
2232
"name": "meta.function.alltt.latex",
2233
"patterns": [
2234
{
2235
"captures": {
2236
"1": {
2237
"name": "punctuation.definition.function.latex"
2238
}
2239
},
2240
"match": "(\\\\)[A-Za-z]+",
2241
"name": "support.function.general.latex"
2242
}
2243
]
2244
},
2245
{
2246
"begin": "(\\s*\\\\begin\\{([Cc]omment)\\})",
2247
"captures": {
2248
"1": {
2249
"patterns": [
2250
{
2251
"include": "#macro-with-args-tokenizer"
2252
}
2253
]
2254
}
2255
},
2256
"contentName": "comment.line.percentage.latex",
2257
"end": "(\\\\end\\{\\2\\})",
2258
"name": "meta.function.verbatim.latex"
2259
}
2260
]
2261
},
2262
"hyperref-macro": {
2263
"patterns": [
2264
{
2265
"begin": "(?:\\s*)((\\\\)(?:href|hyperref|hyperimage))(?=\\[|\\{)",
2266
"beginCaptures": {
2267
"1": {
2268
"name": "support.function.url.latex"
2269
}
2270
},
2271
"comment": "Captures \\command[option]{url}{optional category}{optional name}{text}",
2272
"end": "(\\})",
2273
"endCaptures": {
2274
"1": {
2275
"name": "punctuation.definition.arguments.end.latex"
2276
}
2277
},
2278
"name": "meta.function.hyperlink.latex",
2279
"patterns": [
2280
{
2281
"include": "#multiline-optional-arg-no-highlight"
2282
},
2283
{
2284
"begin": "(?:\\G|(?<=\\]))(\\{)([^}]*)(\\})(?:\\{[^}]*\\}){2}?(\\{)",
2285
"beginCaptures": {
2286
"1": {
2287
"name": "punctuation.definition.arguments.begin.latex"
2288
},
2289
"2": {
2290
"name": "markup.underline.link.latex"
2291
},
2292
"3": {
2293
"name": "punctuation.definition.arguments.end.latex"
2294
},
2295
"4": {
2296
"name": "punctuation.definition.arguments.begin.latex"
2297
}
2298
},
2299
"contentName": "meta.variable.parameter.function.latex",
2300
"end": "(?=\\})",
2301
"patterns": [
2302
{
2303
"include": "$self"
2304
}
2305
]
2306
},
2307
{
2308
"begin": "(?:\\G|(?<=\\]))(?:(\\{)[^}]*(\\}))?(\\{)",
2309
"beginCaptures": {
2310
"1": {
2311
"name": "punctuation.definition.arguments.begin.latex"
2312
},
2313
"2": {
2314
"name": "punctuation.definition.arguments.end.latex"
2315
},
2316
"3": {
2317
"name": "punctuation.definition.arguments.begin.latex"
2318
}
2319
},
2320
"contentName": "meta.variable.parameter.function.latex",
2321
"end": "(?=\\})",
2322
"patterns": [
2323
{
2324
"include": "$self"
2325
}
2326
]
2327
}
2328
]
2329
},
2330
{
2331
"match": "(?:\\s*)((\\\\)(?:url|path))(\\{)([^}]*)(\\})",
2332
"captures": {
2333
"1": {
2334
"name": "support.function.url.latex"
2335
},
2336
"2": {
2337
"name": "punctuation.definition.function.latex"
2338
},
2339
"3": {
2340
"name": "punctuation.definition.arguments.begin.latex"
2341
},
2342
"4": {
2343
"name": "markup.underline.link.latex"
2344
},
2345
"5": {
2346
"name": "punctuation.definition.arguments.end.latex"
2347
}
2348
},
2349
"name": "meta.function.link.url.latex"
2350
}
2351
]
2352
},
2353
"inline-code-macro": {
2354
"patterns": [
2355
{
2356
"begin": "((\\\\)addplot)(?:\\+?)((?:\\[[^\\[]*\\]))*\\s*(gnuplot)\\s*((?:\\[[^\\[]*\\]))*\\s*(\\{)",
2357
"captures": {
2358
"1": {
2359
"name": "support.function.be.latex"
2360
},
2361
"2": {
2362
"name": "punctuation.definition.function.latex"
2363
},
2364
"3": {
2365
"patterns": [
2366
{
2367
"include": "#optional-arg-bracket"
2368
}
2369
]
2370
},
2371
"4": {
2372
"name": "variable.parameter.function.latex"
2373
},
2374
"5": {
2375
"patterns": [
2376
{
2377
"include": "#optional-arg-bracket"
2378
}
2379
]
2380
},
2381
"6": {
2382
"name": "punctuation.definition.arguments.begin.latex"
2383
}
2384
},
2385
"end": "\\s*(\\};)",
2386
"patterns": [
2387
{
2388
"begin": "%",
2389
"beginCaptures": {
2390
"0": {
2391
"name": "punctuation.definition.comment.latex"
2392
}
2393
},
2394
"end": "$\\n?",
2395
"name": "comment.line.percentage.latex"
2396
},
2397
{
2398
"include": "source.gnuplot"
2399
}
2400
]
2401
},
2402
{
2403
"match": "((\\\\)(?:mint|mintinline))((?:\\[[^\\[]*?\\])?)(\\{)[a-zA-Z]*(\\})(?:(?:([^a-zA-Z\\{])(.*?)(\\6))|(?:(\\{)(.*?)(\\})))",
2404
"captures": {
2405
"1": {
2406
"name": "support.function.verb.latex"
2407
},
2408
"2": {
2409
"name": "punctuation.definition.function.latex"
2410
},
2411
"3": {
2412
"patterns": [
2413
{
2414
"include": "#optional-arg-bracket"
2415
}
2416
]
2417
},
2418
"4": {
2419
"name": "punctuation.definition.arguments.begin.latex"
2420
},
2421
"5": {
2422
"name": "punctuation.definition.arguments.end.latex"
2423
},
2424
"6": {
2425
"name": "punctuation.definition.verb.latex"
2426
},
2427
"7": {
2428
"name": "markup.raw.verb.latex"
2429
},
2430
"8": {
2431
"name": "punctuation.definition.verb.latex"
2432
},
2433
"9": {
2434
"name": "punctuation.definition.verb.latex"
2435
},
2436
"10": {
2437
"name": "markup.raw.verb.latex"
2438
},
2439
"11": {
2440
"name": "punctuation.definition.verb.latex"
2441
}
2442
},
2443
"name": "meta.function.verb.latex"
2444
},
2445
{
2446
"match": "((\\\\)[a-z]+inline)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",
2447
"captures": {
2448
"1": {
2449
"name": "support.function.verb.latex"
2450
},
2451
"2": {
2452
"name": "punctuation.definition.function.latex"
2453
},
2454
"3": {
2455
"patterns": [
2456
{
2457
"include": "#optional-arg-bracket"
2458
}
2459
]
2460
},
2461
"4": {
2462
"name": "punctuation.definition.verb.latex"
2463
},
2464
"5": {
2465
"name": "markup.raw.verb.latex"
2466
},
2467
"6": {
2468
"name": "punctuation.definition.verb.latex"
2469
},
2470
"7": {
2471
"name": "punctuation.definition.verb.latex"
2472
},
2473
"8": {
2474
"name": "markup.raw.verb.latex"
2475
},
2476
"9": {
2477
"name": "punctuation.definition.verb.latex"
2478
}
2479
},
2480
"name": "meta.function.verb.latex"
2481
},
2482
{
2483
"match": "((\\\\)(?:(?:py|pycon|pylab|pylabcon|sympy|sympycon)[cv]?|pyq|pycq|pyif))((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{\\}\\[\\](),;\\s])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",
2484
"captures": {
2485
"1": {
2486
"name": "support.function.verb.latex"
2487
},
2488
"2": {
2489
"name": "punctuation.definition.function.latex"
2490
},
2491
"3": {
2492
"patterns": [
2493
{
2494
"include": "#optional-arg-bracket"
2495
}
2496
]
2497
},
2498
"4": {
2499
"name": "punctuation.definition.verb.latex"
2500
},
2501
"5": {
2502
"name": "source.python",
2503
"patterns": [
2504
{
2505
"include": "source.python"
2506
}
2507
]
2508
},
2509
"6": {
2510
"name": "punctuation.definition.verb.latex"
2511
},
2512
"7": {
2513
"name": "punctuation.definition.verb.latex"
2514
},
2515
"8": {
2516
"name": "source.python",
2517
"patterns": [
2518
{
2519
"include": "source.python"
2520
}
2521
]
2522
},
2523
"9": {
2524
"name": "punctuation.definition.verb.latex"
2525
}
2526
},
2527
"name": "meta.function.verb.latex"
2528
},
2529
{
2530
"match": "((\\\\)(?:jl|julia)[cv]?)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",
2531
"captures": {
2532
"1": {
2533
"name": "support.function.verb.latex"
2534
},
2535
"2": {
2536
"name": "punctuation.definition.function.latex"
2537
},
2538
"3": {
2539
"patterns": [
2540
{
2541
"include": "#optional-arg-bracket"
2542
}
2543
]
2544
},
2545
"4": {
2546
"name": "punctuation.definition.verb.latex"
2547
},
2548
"5": {
2549
"name": "source.julia",
2550
"patterns": [
2551
{
2552
"include": "source.julia"
2553
}
2554
]
2555
},
2556
"6": {
2557
"name": "punctuation.definition.verb.latex"
2558
},
2559
"7": {
2560
"name": "punctuation.definition.verb.latex"
2561
},
2562
"8": {
2563
"name": "source.julia",
2564
"patterns": [
2565
{
2566
"include": "source.julia"
2567
}
2568
]
2569
},
2570
"9": {
2571
"name": "punctuation.definition.verb.latex"
2572
}
2573
},
2574
"name": "meta.function.verb.latex"
2575
},
2576
{
2577
"begin": "((\\\\)(?:directlua|luadirect|luaexec))(\\{)",
2578
"beginCaptures": {
2579
"1": {
2580
"name": "support.function.verb.latex"
2581
},
2582
"2": {
2583
"name": "punctuation.definition.function.latex"
2584
},
2585
"3": {
2586
"name": "punctuation.definition.arguments.begin.latex"
2587
}
2588
},
2589
"end": "\\}",
2590
"endCaptures": {
2591
"0": {
2592
"name": "punctuation.definition.arguments.end.latex"
2593
}
2594
},
2595
"contentName": "source.lua",
2596
"patterns": [
2597
{
2598
"include": "source.lua"
2599
},
2600
{
2601
"include": "text.tex#braces"
2602
}
2603
]
2604
},
2605
{
2606
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:asy|asymptote)\\b|\\{)",
2607
"end": "(?<=\\})",
2608
"beginCaptures": {
2609
"1": {
2610
"name": "support.function.verb.latex"
2611
},
2612
"2": {
2613
"name": "punctuation.definition.function.latex"
2614
}
2615
},
2616
"patterns": [
2617
{
2618
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
2619
},
2620
{
2621
"begin": "(?<=\\])(\\{)",
2622
"end": "\\}",
2623
"beginCaptures": {
2624
"0": {
2625
"name": "punctuation.definition.arguments.begin.latex"
2626
}
2627
},
2628
"endCaptures": {
2629
"0": {
2630
"name": "punctuation.definition.arguments.end.latex"
2631
}
2632
},
2633
"contentName": "source.asy",
2634
"patterns": [
2635
{
2636
"include": "source.asy"
2637
}
2638
]
2639
}
2640
]
2641
},
2642
{
2643
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:bash)\\b|\\{)",
2644
"end": "(?<=\\})",
2645
"beginCaptures": {
2646
"1": {
2647
"name": "support.function.verb.latex"
2648
},
2649
"2": {
2650
"name": "punctuation.definition.function.latex"
2651
}
2652
},
2653
"patterns": [
2654
{
2655
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
2656
},
2657
{
2658
"begin": "(?<=\\])(\\{)",
2659
"end": "\\}",
2660
"beginCaptures": {
2661
"0": {
2662
"name": "punctuation.definition.arguments.begin.latex"
2663
}
2664
},
2665
"endCaptures": {
2666
"0": {
2667
"name": "punctuation.definition.arguments.end.latex"
2668
}
2669
},
2670
"contentName": "source.shell",
2671
"patterns": [
2672
{
2673
"include": "source.shell"
2674
}
2675
]
2676
}
2677
]
2678
},
2679
{
2680
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:c|cpp)\\b|\\{)",
2681
"end": "(?<=\\})",
2682
"beginCaptures": {
2683
"1": {
2684
"name": "support.function.verb.latex"
2685
},
2686
"2": {
2687
"name": "punctuation.definition.function.latex"
2688
}
2689
},
2690
"patterns": [
2691
{
2692
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
2693
},
2694
{
2695
"begin": "(?<=\\])(\\{)",
2696
"end": "\\}",
2697
"beginCaptures": {
2698
"0": {
2699
"name": "punctuation.definition.arguments.begin.latex"
2700
}
2701
},
2702
"endCaptures": {
2703
"0": {
2704
"name": "punctuation.definition.arguments.end.latex"
2705
}
2706
},
2707
"contentName": "source.cpp.embedded.latex",
2708
"patterns": [
2709
{
2710
"include": "source.cpp.embedded.latex"
2711
}
2712
]
2713
}
2714
]
2715
},
2716
{
2717
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:css)\\b|\\{)",
2718
"end": "(?<=\\})",
2719
"beginCaptures": {
2720
"1": {
2721
"name": "support.function.verb.latex"
2722
},
2723
"2": {
2724
"name": "punctuation.definition.function.latex"
2725
}
2726
},
2727
"patterns": [
2728
{
2729
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
2730
},
2731
{
2732
"begin": "(?<=\\])(\\{)",
2733
"end": "\\}",
2734
"beginCaptures": {
2735
"0": {
2736
"name": "punctuation.definition.arguments.begin.latex"
2737
}
2738
},
2739
"endCaptures": {
2740
"0": {
2741
"name": "punctuation.definition.arguments.end.latex"
2742
}
2743
},
2744
"contentName": "source.css",
2745
"patterns": [
2746
{
2747
"include": "source.css"
2748
}
2749
]
2750
}
2751
]
2752
},
2753
{
2754
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:gnuplot)\\b|\\{)",
2755
"end": "(?<=\\})",
2756
"beginCaptures": {
2757
"1": {
2758
"name": "support.function.verb.latex"
2759
},
2760
"2": {
2761
"name": "punctuation.definition.function.latex"
2762
}
2763
},
2764
"patterns": [
2765
{
2766
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
2767
},
2768
{
2769
"begin": "(?<=\\])(\\{)",
2770
"end": "\\}",
2771
"beginCaptures": {
2772
"0": {
2773
"name": "punctuation.definition.arguments.begin.latex"
2774
}
2775
},
2776
"endCaptures": {
2777
"0": {
2778
"name": "punctuation.definition.arguments.end.latex"
2779
}
2780
},
2781
"contentName": "source.gnuplot",
2782
"patterns": [
2783
{
2784
"include": "source.gnuplot"
2785
}
2786
]
2787
}
2788
]
2789
},
2790
{
2791
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:hs|haskell)\\b|\\{)",
2792
"end": "(?<=\\})",
2793
"beginCaptures": {
2794
"1": {
2795
"name": "support.function.verb.latex"
2796
},
2797
"2": {
2798
"name": "punctuation.definition.function.latex"
2799
}
2800
},
2801
"patterns": [
2802
{
2803
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
2804
},
2805
{
2806
"begin": "(?<=\\])(\\{)",
2807
"end": "\\}",
2808
"beginCaptures": {
2809
"0": {
2810
"name": "punctuation.definition.arguments.begin.latex"
2811
}
2812
},
2813
"endCaptures": {
2814
"0": {
2815
"name": "punctuation.definition.arguments.end.latex"
2816
}
2817
},
2818
"contentName": "source.haskell",
2819
"patterns": [
2820
{
2821
"include": "source.haskell"
2822
}
2823
]
2824
}
2825
]
2826
},
2827
{
2828
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:html)\\b|\\{)",
2829
"end": "(?<=\\})",
2830
"beginCaptures": {
2831
"1": {
2832
"name": "support.function.verb.latex"
2833
},
2834
"2": {
2835
"name": "punctuation.definition.function.latex"
2836
}
2837
},
2838
"patterns": [
2839
{
2840
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
2841
},
2842
{
2843
"begin": "(?<=\\])(\\{)",
2844
"end": "\\}",
2845
"beginCaptures": {
2846
"0": {
2847
"name": "punctuation.definition.arguments.begin.latex"
2848
}
2849
},
2850
"endCaptures": {
2851
"0": {
2852
"name": "punctuation.definition.arguments.end.latex"
2853
}
2854
},
2855
"contentName": "text.html",
2856
"patterns": [
2857
{
2858
"include": "text.html.basic"
2859
}
2860
]
2861
}
2862
]
2863
},
2864
{
2865
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:java)\\b|\\{)",
2866
"end": "(?<=\\})",
2867
"beginCaptures": {
2868
"1": {
2869
"name": "support.function.verb.latex"
2870
},
2871
"2": {
2872
"name": "punctuation.definition.function.latex"
2873
}
2874
},
2875
"patterns": [
2876
{
2877
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
2878
},
2879
{
2880
"begin": "(?<=\\])(\\{)",
2881
"end": "\\}",
2882
"beginCaptures": {
2883
"0": {
2884
"name": "punctuation.definition.arguments.begin.latex"
2885
}
2886
},
2887
"endCaptures": {
2888
"0": {
2889
"name": "punctuation.definition.arguments.end.latex"
2890
}
2891
},
2892
"contentName": "source.java",
2893
"patterns": [
2894
{
2895
"include": "source.java"
2896
}
2897
]
2898
}
2899
]
2900
},
2901
{
2902
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:jl|julia)\\b|\\{)",
2903
"end": "(?<=\\})",
2904
"beginCaptures": {
2905
"1": {
2906
"name": "support.function.verb.latex"
2907
},
2908
"2": {
2909
"name": "punctuation.definition.function.latex"
2910
}
2911
},
2912
"patterns": [
2913
{
2914
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
2915
},
2916
{
2917
"begin": "(?<=\\])(\\{)",
2918
"end": "\\}",
2919
"beginCaptures": {
2920
"0": {
2921
"name": "punctuation.definition.arguments.begin.latex"
2922
}
2923
},
2924
"endCaptures": {
2925
"0": {
2926
"name": "punctuation.definition.arguments.end.latex"
2927
}
2928
},
2929
"contentName": "source.julia",
2930
"patterns": [
2931
{
2932
"include": "source.julia"
2933
}
2934
]
2935
}
2936
]
2937
},
2938
{
2939
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:js|javascript)\\b|\\{)",
2940
"end": "(?<=\\})",
2941
"beginCaptures": {
2942
"1": {
2943
"name": "support.function.verb.latex"
2944
},
2945
"2": {
2946
"name": "punctuation.definition.function.latex"
2947
}
2948
},
2949
"patterns": [
2950
{
2951
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
2952
},
2953
{
2954
"begin": "(?<=\\])(\\{)",
2955
"end": "\\}",
2956
"beginCaptures": {
2957
"0": {
2958
"name": "punctuation.definition.arguments.begin.latex"
2959
}
2960
},
2961
"endCaptures": {
2962
"0": {
2963
"name": "punctuation.definition.arguments.end.latex"
2964
}
2965
},
2966
"contentName": "source.js",
2967
"patterns": [
2968
{
2969
"include": "source.js"
2970
}
2971
]
2972
}
2973
]
2974
},
2975
{
2976
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:lua)\\b|\\{)",
2977
"end": "(?<=\\})",
2978
"beginCaptures": {
2979
"1": {
2980
"name": "support.function.verb.latex"
2981
},
2982
"2": {
2983
"name": "punctuation.definition.function.latex"
2984
}
2985
},
2986
"patterns": [
2987
{
2988
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
2989
},
2990
{
2991
"begin": "(?<=\\])(\\{)",
2992
"end": "\\}",
2993
"beginCaptures": {
2994
"0": {
2995
"name": "punctuation.definition.arguments.begin.latex"
2996
}
2997
},
2998
"endCaptures": {
2999
"0": {
3000
"name": "punctuation.definition.arguments.end.latex"
3001
}
3002
},
3003
"contentName": "source.lua",
3004
"patterns": [
3005
{
3006
"include": "source.lua"
3007
}
3008
]
3009
}
3010
]
3011
},
3012
{
3013
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:py|python|sage)\\b|\\{)",
3014
"end": "(?<=\\})",
3015
"beginCaptures": {
3016
"1": {
3017
"name": "support.function.verb.latex"
3018
},
3019
"2": {
3020
"name": "punctuation.definition.function.latex"
3021
}
3022
},
3023
"patterns": [
3024
{
3025
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
3026
},
3027
{
3028
"begin": "(?<=\\])(\\{)",
3029
"end": "\\}",
3030
"beginCaptures": {
3031
"0": {
3032
"name": "punctuation.definition.arguments.begin.latex"
3033
}
3034
},
3035
"endCaptures": {
3036
"0": {
3037
"name": "punctuation.definition.arguments.end.latex"
3038
}
3039
},
3040
"contentName": "source.python",
3041
"patterns": [
3042
{
3043
"include": "source.python"
3044
}
3045
]
3046
}
3047
]
3048
},
3049
{
3050
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:rb|ruby)\\b|\\{)",
3051
"end": "(?<=\\})",
3052
"beginCaptures": {
3053
"1": {
3054
"name": "support.function.verb.latex"
3055
},
3056
"2": {
3057
"name": "punctuation.definition.function.latex"
3058
}
3059
},
3060
"patterns": [
3061
{
3062
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
3063
},
3064
{
3065
"begin": "(?<=\\])(\\{)",
3066
"end": "\\}",
3067
"beginCaptures": {
3068
"0": {
3069
"name": "punctuation.definition.arguments.begin.latex"
3070
}
3071
},
3072
"endCaptures": {
3073
"0": {
3074
"name": "punctuation.definition.arguments.end.latex"
3075
}
3076
},
3077
"contentName": "source.ruby",
3078
"patterns": [
3079
{
3080
"include": "source.ruby"
3081
}
3082
]
3083
}
3084
]
3085
},
3086
{
3087
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:rust)\\b|\\{)",
3088
"end": "(?<=\\})",
3089
"beginCaptures": {
3090
"1": {
3091
"name": "support.function.verb.latex"
3092
},
3093
"2": {
3094
"name": "punctuation.definition.function.latex"
3095
}
3096
},
3097
"patterns": [
3098
{
3099
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
3100
},
3101
{
3102
"begin": "(?<=\\])(\\{)",
3103
"end": "\\}",
3104
"beginCaptures": {
3105
"0": {
3106
"name": "punctuation.definition.arguments.begin.latex"
3107
}
3108
},
3109
"endCaptures": {
3110
"0": {
3111
"name": "punctuation.definition.arguments.end.latex"
3112
}
3113
},
3114
"contentName": "source.rust",
3115
"patterns": [
3116
{
3117
"include": "source.rust"
3118
}
3119
]
3120
}
3121
]
3122
},
3123
{
3124
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:ts|typescript)\\b|\\{)",
3125
"end": "(?<=\\})",
3126
"beginCaptures": {
3127
"1": {
3128
"name": "support.function.verb.latex"
3129
},
3130
"2": {
3131
"name": "punctuation.definition.function.latex"
3132
}
3133
},
3134
"patterns": [
3135
{
3136
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
3137
},
3138
{
3139
"begin": "(?<=\\])(\\{)",
3140
"end": "\\}",
3141
"beginCaptures": {
3142
"0": {
3143
"name": "punctuation.definition.arguments.begin.latex"
3144
}
3145
},
3146
"endCaptures": {
3147
"0": {
3148
"name": "punctuation.definition.arguments.end.latex"
3149
}
3150
},
3151
"contentName": "source.ts",
3152
"patterns": [
3153
{
3154
"include": "source.ts"
3155
}
3156
]
3157
}
3158
]
3159
},
3160
{
3161
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:xml)\\b|\\{)",
3162
"end": "(?<=\\})",
3163
"beginCaptures": {
3164
"1": {
3165
"name": "support.function.verb.latex"
3166
},
3167
"2": {
3168
"name": "punctuation.definition.function.latex"
3169
}
3170
},
3171
"patterns": [
3172
{
3173
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
3174
},
3175
{
3176
"begin": "(?<=\\])(\\{)",
3177
"end": "\\}",
3178
"beginCaptures": {
3179
"0": {
3180
"name": "punctuation.definition.arguments.begin.latex"
3181
}
3182
},
3183
"endCaptures": {
3184
"0": {
3185
"name": "punctuation.definition.arguments.end.latex"
3186
}
3187
},
3188
"contentName": "text.xml",
3189
"patterns": [
3190
{
3191
"include": "text.xml"
3192
}
3193
]
3194
}
3195
]
3196
},
3197
{
3198
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:yaml)\\b|\\{)",
3199
"end": "(?<=\\})",
3200
"beginCaptures": {
3201
"1": {
3202
"name": "support.function.verb.latex"
3203
},
3204
"2": {
3205
"name": "punctuation.definition.function.latex"
3206
}
3207
},
3208
"patterns": [
3209
{
3210
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
3211
},
3212
{
3213
"begin": "(?<=\\])(\\{)",
3214
"end": "\\}",
3215
"beginCaptures": {
3216
"0": {
3217
"name": "punctuation.definition.arguments.begin.latex"
3218
}
3219
},
3220
"endCaptures": {
3221
"0": {
3222
"name": "punctuation.definition.arguments.end.latex"
3223
}
3224
},
3225
"contentName": "source.yaml",
3226
"patterns": [
3227
{
3228
"include": "source.yaml"
3229
}
3230
]
3231
}
3232
]
3233
},
3234
{
3235
"begin": "((\\\\)cacheMeCode)(?=\\[(?i:tikz|tikzpicture)\\b|\\{)",
3236
"end": "(?<=\\})",
3237
"beginCaptures": {
3238
"1": {
3239
"name": "support.function.verb.latex"
3240
},
3241
"2": {
3242
"name": "punctuation.definition.function.latex"
3243
}
3244
},
3245
"patterns": [
3246
{
3247
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
3248
},
3249
{
3250
"begin": "(?<=\\])(\\{)",
3251
"end": "\\}",
3252
"beginCaptures": {
3253
"0": {
3254
"name": "punctuation.definition.arguments.begin.latex"
3255
}
3256
},
3257
"endCaptures": {
3258
"0": {
3259
"name": "punctuation.definition.arguments.end.latex"
3260
}
3261
},
3262
"contentName": "text.tex.latex",
3263
"patterns": [
3264
{
3265
"include": "text.tex.latex"
3266
}
3267
]
3268
}
3269
]
3270
},
3271
{
3272
"begin": "((\\\\)cacheMeCode)(?=\\[|\\{)",
3273
"end": "(?<=\\})",
3274
"beginCaptures": {
3275
"1": {
3276
"name": "support.function.verb.latex"
3277
},
3278
"2": {
3279
"name": "punctuation.definition.function.latex"
3280
}
3281
},
3282
"patterns": [
3283
{
3284
"include": "text.tex.latex#multiline-optional-arg-no-highlight"
3285
},
3286
{
3287
"begin": "(?<=\\])(\\{)",
3288
"end": "\\}",
3289
"beginCaptures": {
3290
"0": {
3291
"name": "punctuation.definition.arguments.begin.latex"
3292
}
3293
},
3294
"endCaptures": {
3295
"0": {
3296
"name": "punctuation.definition.arguments.end.latex"
3297
}
3298
},
3299
"contentName": "meta.embedded.block.generic.latex",
3300
"patterns": [
3301
{
3302
"include": "text.tex#braces"
3303
}
3304
]
3305
}
3306
]
3307
}
3308
]
3309
},
3310
"citation-macro": {
3311
"begin": "((\\\\)(?:[aA]uto|foot|full|footfull|no|ref|short|[tT]ext|[pP]aren|[sS]mart|[fFpP]vol|vol)?[cC]ite(?:al)?(?:p|s|t|author|year(?:par)?|title|url|date)?[ANP]*\\*?)((?:(?:\\([^\\)]*\\)){0,2}(?:\\[[^\\]]*\\]){0,2}\\{[\\p{Alphabetic}\\p{Number}_:.-]*\\})*)(<[^\\]<>]*>)?((?:\\[[^\\]]*\\])*)(\\{)",
3312
"captures": {
3313
"1": {
3314
"name": "keyword.control.cite.latex"
3315
},
3316
"2": {
3317
"name": "punctuation.definition.keyword.latex"
3318
},
3319
"3": {
3320
"patterns": [
3321
{
3322
"include": "#autocites-arg"
3323
}
3324
]
3325
},
3326
"4": {
3327
"patterns": [
3328
{
3329
"include": "#optional-arg-angle-no-highlight"
3330
}
3331
]
3332
},
3333
"5": {
3334
"patterns": [
3335
{
3336
"include": "#optional-arg-bracket-no-highlight"
3337
}
3338
]
3339
},
3340
"6": {
3341
"name": "punctuation.definition.arguments.begin.latex"
3342
}
3343
},
3344
"end": "\\}",
3345
"endCaptures": {
3346
"0": {
3347
"name": "punctuation.definition.arguments.end.latex"
3348
}
3349
},
3350
"name": "meta.citation.latex",
3351
"patterns": [
3352
{
3353
"match": "((%).*)$",
3354
"captures": {
3355
"1": {
3356
"name": "comment.line.percentage.tex"
3357
},
3358
"2": {
3359
"name": "punctuation.definition.comment.tex"
3360
}
3361
}
3362
},
3363
{
3364
"match": "[\\p{Alphabetic}\\p{Number}:.-]+",
3365
"name": "constant.other.reference.citation.latex"
3366
}
3367
]
3368
},
3369
"references-macro": {
3370
"patterns": [
3371
{
3372
"begin": "((\\\\)(?:\\w*[rR]ef\\*?))(?:\\[[^\\]]*\\])?(\\{)",
3373
"beginCaptures": {
3374
"1": {
3375
"name": "keyword.control.ref.latex"
3376
},
3377
"2": {
3378
"name": "punctuation.definition.keyword.latex"
3379
},
3380
"3": {
3381
"name": "punctuation.definition.arguments.begin.latex"
3382
}
3383
},
3384
"end": "\\}",
3385
"endCaptures": {
3386
"0": {
3387
"name": "punctuation.definition.arguments.end.latex"
3388
}
3389
},
3390
"name": "meta.reference.label.latex",
3391
"patterns": [
3392
{
3393
"match": "[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]+",
3394
"name": "constant.other.reference.label.latex"
3395
}
3396
]
3397
},
3398
{
3399
"match": "((\\\\)(?:\\w*[rR]efrange\\*?))(?:\\[[^\\]]*\\])?(\\{)([\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]+)(\\})(\\{)([\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]+)(\\})",
3400
"captures": {
3401
"1": {
3402
"name": "keyword.control.ref.latex"
3403
},
3404
"2": {
3405
"name": "punctuation.definition.keyword.latex"
3406
},
3407
"3": {
3408
"name": "punctuation.definition.arguments.begin.latex"
3409
},
3410
"4": {
3411
"name": "constant.other.reference.label.latex"
3412
},
3413
"5": {
3414
"name": "punctuation.definition.arguments.end.latex"
3415
},
3416
"6": {
3417
"name": "punctuation.definition.arguments.begin.latex"
3418
},
3419
"7": {
3420
"name": "constant.other.reference.label.latex"
3421
},
3422
"8": {
3423
"name": "punctuation.definition.arguments.end.latex"
3424
}
3425
}
3426
},
3427
{
3428
"begin": "((\\\\)bibentry)(\\{)",
3429
"captures": {
3430
"1": {
3431
"name": "keyword.control.cite.latex"
3432
},
3433
"2": {
3434
"name": "punctuation.definition.keyword.latex"
3435
},
3436
"3": {
3437
"name": "punctuation.definition.arguments.begin.latex"
3438
}
3439
},
3440
"end": "\\}",
3441
"endCaptures": {
3442
"0": {
3443
"name": "punctuation.definition.arguments.end.latex"
3444
}
3445
},
3446
"name": "meta.citation.latex",
3447
"patterns": [
3448
{
3449
"match": "[\\p{Alphabetic}\\p{Number}:.]+",
3450
"name": "constant.other.reference.citation.latex"
3451
}
3452
]
3453
}
3454
]
3455
},
3456
"display-math": {
3457
"patterns": [
3458
{
3459
"begin": "\\\\\\[",
3460
"beginCaptures": {
3461
"0": {
3462
"name": "punctuation.definition.string.begin.latex"
3463
}
3464
},
3465
"end": "\\\\\\]",
3466
"endCaptures": {
3467
"0": {
3468
"name": "punctuation.definition.string.end.latex"
3469
}
3470
},
3471
"name": "meta.math.block.latex support.class.math.block.environment.latex",
3472
"patterns": [
3473
{
3474
"include": "text.tex#math-content"
3475
},
3476
{
3477
"include": "$self"
3478
}
3479
]
3480
},
3481
{
3482
"begin": "\\$\\$",
3483
"beginCaptures": {
3484
"0": {
3485
"name": "punctuation.definition.string.begin.latex"
3486
}
3487
},
3488
"end": "\\$\\$",
3489
"endCaptures": {
3490
"0": {
3491
"name": "punctuation.definition.string.end.latex"
3492
}
3493
},
3494
"name": "meta.math.block.latex support.class.math.block.environment.latex",
3495
"patterns": [
3496
{
3497
"match": "\\\\\\$",
3498
"name": "constant.character.escape.latex"
3499
},
3500
{
3501
"include": "text.tex#math-content"
3502
},
3503
{
3504
"include": "$self"
3505
}
3506
]
3507
}
3508
]
3509
},
3510
"inline-math": {
3511
"patterns": [
3512
{
3513
"begin": "\\\\\\(",
3514
"beginCaptures": {
3515
"0": {
3516
"name": "punctuation.definition.string.begin.latex"
3517
}
3518
},
3519
"end": "\\\\\\)",
3520
"endCaptures": {
3521
"0": {
3522
"name": "punctuation.definition.string.end.latex"
3523
}
3524
},
3525
"name": "meta.math.block.latex support.class.math.block.environment.latex",
3526
"patterns": [
3527
{
3528
"include": "text.tex#math-content"
3529
},
3530
{
3531
"include": "$self"
3532
}
3533
]
3534
},
3535
{
3536
"begin": "\\$(?!\\$)",
3537
"beginCaptures": {
3538
"0": {
3539
"name": "punctuation.definition.string.begin.tex"
3540
}
3541
},
3542
"end": "(?<!\\$)\\$",
3543
"endCaptures": {
3544
"0": {
3545
"name": "punctuation.definition.string.end.tex"
3546
}
3547
},
3548
"name": "meta.math.block.tex support.class.math.block.tex",
3549
"patterns": [
3550
{
3551
"match": "\\\\\\$",
3552
"name": "constant.character.escape.latex"
3553
},
3554
{
3555
"include": "text.tex#math-content"
3556
},
3557
{
3558
"include": "$self"
3559
}
3560
]
3561
}
3562
]
3563
},
3564
"verb-macro": {
3565
"patterns": [
3566
{
3567
"begin": "((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((\\\\)scantokens)(\\{)",
3568
"beginCaptures": {
3569
"1": {
3570
"name": "support.function.verb.latex"
3571
},
3572
"2": {
3573
"name": "punctuation.definition.function.latex"
3574
},
3575
"3": {
3576
"name": "support.function.verb.latex"
3577
},
3578
"4": {
3579
"name": "punctuation.definition.verb.latex"
3580
},
3581
"5": {
3582
"name": "punctuation.definition.begin.latex"
3583
}
3584
},
3585
"contentName": "markup.raw.verb.latex",
3586
"end": "(\\})",
3587
"endCaptures": {
3588
"1": {
3589
"name": "punctuation.definition.end.latex"
3590
}
3591
},
3592
"name": "meta.function.verb.latex",
3593
"patterns": [
3594
{
3595
"include": "$self"
3596
}
3597
]
3598
},
3599
{
3600
"match": "((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((?<=\\s)\\S|[^a-zA-Z])(.*?)(\\3|$)",
3601
"captures": {
3602
"1": {
3603
"name": "support.function.verb.latex"
3604
},
3605
"2": {
3606
"name": "punctuation.definition.function.latex"
3607
},
3608
"3": {
3609
"name": "punctuation.definition.verb.latex"
3610
},
3611
"4": {
3612
"name": "markup.raw.verb.latex"
3613
},
3614
"5": {
3615
"name": "punctuation.definition.verb.latex"
3616
}
3617
},
3618
"name": "meta.function.verb.latex"
3619
}
3620
]
3621
},
3622
"all-balanced-env": {
3623
"patterns": [
3624
{
3625
"begin": "(?:\\s*)((\\\\)begin)(\\{)((?:\\+?array|equation|(?:IEEE|sub)?eqnarray|multline|align|aligned|alignat|alignedat|flalign|flaligned|flalignat|split|gather|gathered|(?:\\+|d|r|dr)?cases|(?:display)?math|\\+?[a-zA-Z]*matrix|[pbBvV]?NiceMatrix|[pbBvV]?NiceArray|(?:(?:arg)?(?:mini|maxi)))(?:\\*|!)?)(\\})(\\s*\\n)?",
3626
"captures": {
3627
"1": {
3628
"name": "support.function.be.latex"
3629
},
3630
"2": {
3631
"name": "punctuation.definition.function.latex"
3632
},
3633
"3": {
3634
"name": "punctuation.definition.arguments.begin.latex"
3635
},
3636
"4": {
3637
"name": "variable.parameter.function.latex"
3638
},
3639
"5": {
3640
"name": "punctuation.definition.arguments.end.latex"
3641
}
3642
},
3643
"contentName": "meta.math.block.latex support.class.math.block.environment.latex",
3644
"end": "(?:\\s*)((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?",
3645
"name": "meta.function.environment.math.latex",
3646
"patterns": [
3647
{
3648
"match": "(?<!\\\\)&",
3649
"name": "keyword.control.equation.align.latex"
3650
},
3651
{
3652
"match": "\\\\\\\\",
3653
"name": "keyword.control.equation.newline.latex"
3654
},
3655
{
3656
"include": "#label-macro"
3657
},
3658
{
3659
"include": "text.tex#math-content"
3660
},
3661
{
3662
"include": "$self"
3663
}
3664
]
3665
},
3666
{
3667
"begin": "(?:\\s*)(\\\\begin\\{empheq\\}(?:\\[.*\\])?)",
3668
"captures": {
3669
"1": {
3670
"patterns": [
3671
{
3672
"include": "#macro-with-args-tokenizer"
3673
}
3674
]
3675
}
3676
},
3677
"contentName": "meta.math.block.latex support.class.math.block.environment.latex",
3678
"end": "(?:\\s*)(\\\\end\\{empheq\\})",
3679
"name": "meta.function.environment.math.latex",
3680
"patterns": [
3681
{
3682
"match": "(?<!\\\\)&",
3683
"name": "keyword.control.equation.align.latex"
3684
},
3685
{
3686
"match": "\\\\\\\\",
3687
"name": "keyword.control.equation.newline.latex"
3688
},
3689
{
3690
"include": "#label-macro"
3691
},
3692
{
3693
"include": "text.tex#math-content"
3694
},
3695
{
3696
"include": "$self"
3697
}
3698
]
3699
},
3700
{
3701
"begin": "(\\s*\\\\begin\\{(tabular[xy*]?|xltabular|longtable|(?:long)?tabu|(?:long|tall)?tblr|NiceTabular[X*]?|booktabs)\\}(\\s*\\n)?)",
3702
"captures": {
3703
"1": {
3704
"patterns": [
3705
{
3706
"include": "#macro-with-args-tokenizer"
3707
}
3708
]
3709
}
3710
},
3711
"contentName": "meta.data.environment.tabular.latex",
3712
"end": "(\\s*\\\\end\\{(\\2)\\}(?:\\s*\\n)?)",
3713
"name": "meta.function.environment.tabular.latex",
3714
"patterns": [
3715
{
3716
"match": "(?<!\\\\)&",
3717
"name": "keyword.control.table.cell.latex"
3718
},
3719
{
3720
"match": "\\\\\\\\",
3721
"name": "keyword.control.table.newline.latex"
3722
},
3723
{
3724
"include": "$self"
3725
}
3726
]
3727
},
3728
{
3729
"begin": "(\\s*\\\\begin\\{(itemize|enumerate|description|list)\\})",
3730
"captures": {
3731
"1": {
3732
"patterns": [
3733
{
3734
"include": "#macro-with-args-tokenizer"
3735
}
3736
]
3737
}
3738
},
3739
"end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)",
3740
"name": "meta.function.environment.list.latex",
3741
"patterns": [
3742
{
3743
"include": "$self"
3744
}
3745
]
3746
},
3747
{
3748
"begin": "(\\s*\\\\begin\\{tikzpicture\\})",
3749
"captures": {
3750
"1": {
3751
"patterns": [
3752
{
3753
"include": "#macro-with-args-tokenizer"
3754
}
3755
]
3756
}
3757
},
3758
"end": "(\\\\end\\{tikzpicture\\}(?:\\s*\\n)?)",
3759
"name": "meta.function.environment.latex.tikz",
3760
"patterns": [
3761
{
3762
"include": "$self"
3763
}
3764
]
3765
},
3766
{
3767
"begin": "(\\s*\\\\begin\\{frame\\})",
3768
"captures": {
3769
"1": {
3770
"patterns": [
3771
{
3772
"include": "#macro-with-args-tokenizer"
3773
}
3774
]
3775
}
3776
},
3777
"end": "(\\\\end\\{frame\\})",
3778
"name": "meta.function.environment.frame.latex",
3779
"patterns": [
3780
{
3781
"include": "$self"
3782
}
3783
]
3784
},
3785
{
3786
"begin": "(\\s*\\\\begin\\{(mpost\\*?)\\})",
3787
"captures": {
3788
"1": {
3789
"patterns": [
3790
{
3791
"include": "#macro-with-args-tokenizer"
3792
}
3793
]
3794
}
3795
},
3796
"end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)",
3797
"name": "meta.function.environment.latex.mpost"
3798
},
3799
{
3800
"begin": "(\\s*\\\\begin\\{markdown\\})",
3801
"captures": {
3802
"1": {
3803
"patterns": [
3804
{
3805
"include": "#macro-with-args-tokenizer"
3806
}
3807
]
3808
}
3809
},
3810
"contentName": "meta.embedded.markdown_latex_combined",
3811
"end": "(\\\\end\\{markdown\\})",
3812
"patterns": [
3813
{
3814
"include": "text.tex.markdown_latex_combined"
3815
}
3816
]
3817
},
3818
{
3819
"begin": "(\\s*\\\\begin\\{(\\p{Alphabetic}+\\*?)\\})",
3820
"captures": {
3821
"1": {
3822
"patterns": [
3823
{
3824
"include": "#macro-with-args-tokenizer"
3825
}
3826
]
3827
}
3828
},
3829
"end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)",
3830
"name": "meta.function.environment.general.latex",
3831
"patterns": [
3832
{
3833
"include": "$self"
3834
}
3835
]
3836
}
3837
]
3838
},
3839
"newcommand-macro": {
3840
"begin": "((\\\\)(?:newcommand|renewcommand|(?:re)?newrobustcmd|DeclareRobustCommand)\\*?)(\\{)((\\\\)\\p{Alphabetic}+\\*?)(\\})(?:(\\[)[^\\]]*(\\])){0,2}(\\{)",
3841
"beginCaptures": {
3842
"1": {
3843
"name": "storage.type.function.latex"
3844
},
3845
"2": {
3846
"name": "punctuation.definition.function.latex"
3847
},
3848
"3": {
3849
"name": "punctuation.definition.begin.latex"
3850
},
3851
"4": {
3852
"name": "support.function.general.latex"
3853
},
3854
"5": {
3855
"name": "punctuation.definition.function.latex"
3856
},
3857
"6": {
3858
"name": "punctuation.definition.end.latex"
3859
},
3860
"7": {
3861
"name": "punctuation.definition.arguments.optional.begin.latex"
3862
},
3863
"8": {
3864
"name": "punctuation.definition.arguments.optional.end.latex"
3865
},
3866
"9": {
3867
"name": "punctuation.definition.arguments.begin.latex"
3868
}
3869
},
3870
"end": "\\}",
3871
"endCaptures": {
3872
"0": {
3873
"name": "punctuation.definition.arguments.end.latex"
3874
}
3875
},
3876
"name": "meta.parameter.newcommand.latex",
3877
"patterns": [
3878
{
3879
"include": "#documentclass-usepackage-macro"
3880
},
3881
{
3882
"include": "#input-macro"
3883
},
3884
{
3885
"include": "#sections-macro"
3886
},
3887
{
3888
"include": "#hyperref-macro"
3889
},
3890
{
3891
"include": "#text-font-macro"
3892
},
3893
{
3894
"include": "#citation-macro"
3895
},
3896
{
3897
"include": "#references-macro"
3898
},
3899
{
3900
"include": "#label-macro"
3901
},
3902
{
3903
"include": "#verb-macro"
3904
},
3905
{
3906
"include": "#inline-code-macro"
3907
},
3908
{
3909
"include": "#macro-with-args-tokenizer"
3910
},
3911
{
3912
"include": "#all-other-macro"
3913
},
3914
{
3915
"include": "#display-math"
3916
},
3917
{
3918
"include": "#inline-math"
3919
},
3920
{
3921
"include": "#column-specials"
3922
},
3923
{
3924
"include": "#braces"
3925
},
3926
{
3927
"include": "text.tex"
3928
}
3929
]
3930
},
3931
"braces": {
3932
"begin": "(?<!\\\\)\\{",
3933
"beginCaptures": {
3934
"0": {
3935
"name": "punctuation.group.begin.latex"
3936
}
3937
},
3938
"end": "(?<!\\\\)\\}",
3939
"endCaptures": {
3940
"0": {
3941
"name": "punctuation.group.end.latex"
3942
}
3943
},
3944
"name": "meta.group.braces.latex",
3945
"patterns": [
3946
{
3947
"include": "#text-font-macro"
3948
},
3949
{
3950
"include": "#citation-macro"
3951
},
3952
{
3953
"include": "#references-macro"
3954
},
3955
{
3956
"include": "#label-macro"
3957
},
3958
{
3959
"include": "#macro-with-args-tokenizer"
3960
},
3961
{
3962
"include": "#all-other-macro"
3963
},
3964
{
3965
"include": "text.tex"
3966
},
3967
{
3968
"include": "#braces"
3969
}
3970
]
3971
},
3972
"label-macro": {
3973
"begin": "((\\\\)z?label)((?:\\[[^\\[]*?\\])*)(\\{)",
3974
"beginCaptures": {
3975
"1": {
3976
"name": "keyword.control.label.latex"
3977
},
3978
"2": {
3979
"name": "punctuation.definition.keyword.latex"
3980
},
3981
"3": {
3982
"patterns": [
3983
{
3984
"include": "#optional-arg-bracket"
3985
}
3986
]
3987
},
3988
"4": {
3989
"name": "punctuation.definition.arguments.begin.latex"
3990
}
3991
},
3992
"end": "\\}",
3993
"endCaptures": {
3994
"0": {
3995
"name": "punctuation.definition.arguments.end.latex"
3996
}
3997
},
3998
"name": "meta.definition.label.latex",
3999
"patterns": [
4000
{
4001
"match": "[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]+",
4002
"name": "variable.parameter.definition.label.latex"
4003
}
4004
]
4005
},
4006
"all-other-macro": {
4007
"patterns": [
4008
{
4009
"match": "\\\\(?:newline|pagebreak|clearpage|linebreak|pause)(?:\\b)",
4010
"name": "keyword.control.layout.latex"
4011
},
4012
{
4013
"begin": "((\\\\)marginpar)((?:\\[[^\\[]*?\\])*)(\\{)",
4014
"beginCaptures": {
4015
"1": {
4016
"name": "support.function.marginpar.latex"
4017
},
4018
"2": {
4019
"name": "punctuation.definition.function.latex"
4020
},
4021
"3": {
4022
"patterns": [
4023
{
4024
"include": "#optional-arg-bracket"
4025
}
4026
]
4027
},
4028
"4": {
4029
"name": "punctuation.definition.marginpar.begin.latex"
4030
}
4031
},
4032
"contentName": "meta.paragraph.margin.latex",
4033
"end": "\\}",
4034
"endCaptures": {
4035
"0": {
4036
"name": "punctuation.definition.marginpar.end.latex"
4037
}
4038
},
4039
"patterns": [
4040
{
4041
"include": "#braces"
4042
},
4043
{
4044
"include": "$self"
4045
}
4046
]
4047
},
4048
{
4049
"begin": "((\\\\)footnote)((?:\\[[^\\[]*?\\])*)(\\{)",
4050
"beginCaptures": {
4051
"1": {
4052
"name": "support.function.footnote.latex"
4053
},
4054
"2": {
4055
"name": "punctuation.definition.function.latex"
4056
},
4057
"3": {
4058
"patterns": [
4059
{
4060
"include": "#optional-arg-bracket"
4061
}
4062
]
4063
},
4064
"4": {
4065
"name": "punctuation.definition.footnote.begin.latex"
4066
}
4067
},
4068
"contentName": "entity.name.footnote.latex",
4069
"end": "\\}",
4070
"endCaptures": {
4071
"0": {
4072
"name": "punctuation.definition.footnote.end.latex"
4073
}
4074
},
4075
"patterns": [
4076
{
4077
"include": "#braces"
4078
},
4079
{
4080
"include": "$self"
4081
}
4082
]
4083
},
4084
{
4085
"match": "(\\\\)item\\b",
4086
"captures": {
4087
"0": {
4088
"name": "keyword.other.item.latex"
4089
},
4090
"1": {
4091
"name": "punctuation.definition.keyword.latex"
4092
}
4093
},
4094
"name": "meta.scope.item.latex"
4095
},
4096
{
4097
"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",
4098
"captures": {
4099
"1": {
4100
"name": "punctuation.definition.constant.latex"
4101
}
4102
},
4103
"name": "constant.character.latex"
4104
},
4105
{
4106
"match": "(\\\\)(?:[cgl]_+[_\\p{Alphabetic}@]+_[a-z]+|[qs]_[_\\p{Alphabetic}@]+[\\p{Alphabetic}@])",
4107
"captures": {
4108
"1": {
4109
"name": "punctuation.definition.variable.latex"
4110
}
4111
},
4112
"name": "variable.other.latex3.latex"
4113
}
4114
]
4115
},
4116
"column-specials": {
4117
"match": "(?:<|>)(\\{)\\$(\\})",
4118
"captures": {
4119
"1": {
4120
"name": "punctuation.definition.column-specials.begin.latex"
4121
},
4122
"2": {
4123
"name": "punctuation.definition.column-specials.end.latex"
4124
}
4125
},
4126
"name": "meta.column-specials.latex"
4127
},
4128
"autocites-arg": {
4129
"patterns": [
4130
{
4131
"captures": {
4132
"1": {
4133
"patterns": [
4134
{
4135
"include": "#optional-arg-parenthesis-no-highlight"
4136
}
4137
]
4138
},
4139
"2": {
4140
"patterns": [
4141
{
4142
"include": "#optional-arg-bracket-no-highlight"
4143
}
4144
]
4145
},
4146
"3": {
4147
"name": "punctuation.definition.arguments.begin.latex"
4148
},
4149
"4": {
4150
"name": "constant.other.reference.citation.latex"
4151
},
4152
"5": {
4153
"name": "punctuation.definition.arguments.end.latex"
4154
},
4155
"6": {
4156
"patterns": [
4157
{
4158
"include": "#autocites-arg"
4159
}
4160
]
4161
}
4162
},
4163
"match": "((?:\\([^\\)]*\\)){0,2})((?:\\[[^\\]]*\\]){0,2})(\\{)([\\p{Alphabetic}\\p{Number}_:.-]+)(\\})(.*)"
4164
}
4165
]
4166
},
4167
"macro-with-args-tokenizer": {
4168
"match": "\\s*((\\\\)(?:\\p{Alphabetic}+))(\\{)(\\\\?\\p{Alphabetic}+\\*?)(\\})(?:(\\[)([^\\]]*)(\\])){,2}(?:(\\{)([^{}]*)(\\}))?",
4169
"captures": {
4170
"1": {
4171
"name": "support.function.be.latex"
4172
},
4173
"2": {
4174
"name": "punctuation.definition.function.latex"
4175
},
4176
"3": {
4177
"name": "punctuation.definition.arguments.begin.latex"
4178
},
4179
"4": {
4180
"name": "variable.parameter.function.latex"
4181
},
4182
"5": {
4183
"name": "punctuation.definition.arguments.end.latex"
4184
},
4185
"6": {
4186
"name": "punctuation.definition.arguments.optional.begin.latex"
4187
},
4188
"7": {
4189
"patterns": [
4190
{
4191
"include": "$self"
4192
}
4193
]
4194
},
4195
"8": {
4196
"name": "punctuation.definition.arguments.optional.end.latex"
4197
},
4198
"9": {
4199
"name": "punctuation.definition.arguments.begin.latex"
4200
},
4201
"10": {
4202
"name": "variable.parameter.function.latex"
4203
},
4204
"11": {
4205
"name": "punctuation.definition.arguments.end.latex"
4206
}
4207
}
4208
},
4209
"multiline-optional-arg": {
4210
"begin": "\\G\\[",
4211
"beginCaptures": {
4212
"0": {
4213
"name": "punctuation.definition.arguments.optional.begin.latex"
4214
}
4215
},
4216
"contentName": "variable.parameter.function.latex",
4217
"end": "\\]",
4218
"endCaptures": {
4219
"0": {
4220
"name": "punctuation.definition.arguments.optional.end.latex"
4221
}
4222
},
4223
"name": "meta.parameter.optional.latex",
4224
"patterns": [
4225
{
4226
"include": "$self"
4227
}
4228
]
4229
},
4230
"multiline-optional-arg-no-highlight": {
4231
"begin": "(?:\\G|(?<=\\}))\\s*\\[",
4232
"beginCaptures": {
4233
"0": {
4234
"name": "punctuation.definition.arguments.optional.begin.latex"
4235
}
4236
},
4237
"end": "\\]",
4238
"endCaptures": {
4239
"0": {
4240
"name": "punctuation.definition.arguments.optional.end.latex"
4241
}
4242
},
4243
"name": "meta.parameter.optional.latex",
4244
"patterns": [
4245
{
4246
"include": "$self"
4247
}
4248
]
4249
},
4250
"multiline-arg-no-highlight": {
4251
"begin": "\\G\\{",
4252
"beginCaptures": {
4253
"0": {
4254
"name": "punctuation.definition.arguments.begin.latex"
4255
}
4256
},
4257
"end": "\\}",
4258
"endCaptures": {
4259
"0": {
4260
"name": "punctuation.definition.arguments.end.latex"
4261
}
4262
},
4263
"name": "meta.parameter.latex",
4264
"comment": "Do not look for balanced expressions, ie environments, inside a command argument",
4265
"patterns": [
4266
{
4267
"include": "#documentclass-usepackage-macro"
4268
},
4269
{
4270
"include": "#input-macro"
4271
},
4272
{
4273
"include": "#sections-macro"
4274
},
4275
{
4276
"include": "#hyperref-macro"
4277
},
4278
{
4279
"include": "#newcommand-macro"
4280
},
4281
{
4282
"include": "#text-font-macro"
4283
},
4284
{
4285
"include": "#citation-macro"
4286
},
4287
{
4288
"include": "#references-macro"
4289
},
4290
{
4291
"include": "#label-macro"
4292
},
4293
{
4294
"include": "#verb-macro"
4295
},
4296
{
4297
"include": "#inline-code-macro"
4298
},
4299
{
4300
"include": "#all-other-macro"
4301
},
4302
{
4303
"include": "#display-math"
4304
},
4305
{
4306
"include": "#inline-math"
4307
},
4308
{
4309
"include": "#column-specials"
4310
},
4311
{
4312
"include": "#braces"
4313
},
4314
{
4315
"include": "text.tex"
4316
}
4317
]
4318
},
4319
"optional-arg-bracket": {
4320
"patterns": [
4321
{
4322
"captures": {
4323
"1": {
4324
"name": "punctuation.definition.arguments.optional.begin.latex"
4325
},
4326
"2": {
4327
"name": "variable.parameter.function.latex"
4328
},
4329
"3": {
4330
"name": "punctuation.definition.arguments.optional.end.latex"
4331
}
4332
},
4333
"match": "(\\[)([^\\[]*?)(\\])",
4334
"name": "meta.parameter.optional.latex"
4335
}
4336
]
4337
},
4338
"optional-arg-parenthesis": {
4339
"patterns": [
4340
{
4341
"captures": {
4342
"1": {
4343
"name": "punctuation.definition.arguments.optional.begin.latex"
4344
},
4345
"2": {
4346
"name": "variable.parameter.function.latex"
4347
},
4348
"3": {
4349
"name": "punctuation.definition.arguments.optional.end.latex"
4350
}
4351
},
4352
"match": "(\\()([^\\(]*?)(\\))",
4353
"name": "meta.parameter.optional.latex"
4354
}
4355
]
4356
},
4357
"optional-arg-bracket-no-highlight": {
4358
"patterns": [
4359
{
4360
"captures": {
4361
"1": {
4362
"name": "punctuation.definition.arguments.optional.begin.latex"
4363
},
4364
"2": {
4365
"name": "punctuation.definition.arguments.optional.end.latex"
4366
}
4367
},
4368
"match": "(\\[)[^\\[]*?(\\])",
4369
"name": "meta.parameter.optional.latex"
4370
}
4371
]
4372
},
4373
"optional-arg-angle-no-highlight": {
4374
"patterns": [
4375
{
4376
"captures": {
4377
"1": {
4378
"name": "punctuation.definition.arguments.optional.begin.latex"
4379
},
4380
"2": {
4381
"name": "punctuation.definition.arguments.optional.end.latex"
4382
}
4383
},
4384
"match": "(<)[^<]*?(>)",
4385
"name": "meta.parameter.optional.latex"
4386
}
4387
]
4388
},
4389
"optional-arg-parenthesis-no-highlight": {
4390
"patterns": [
4391
{
4392
"captures": {
4393
"1": {
4394
"name": "punctuation.definition.arguments.optional.begin.latex"
4395
},
4396
"2": {
4397
"name": "punctuation.definition.arguments.optional.end.latex"
4398
}
4399
},
4400
"match": "(\\()[^\\(]*?(\\))",
4401
"name": "meta.parameter.optional.latex"
4402
}
4403
]
4404
},
4405
"songs-chords": {
4406
"patterns": [
4407
{
4408
"begin": "\\\\\\[",
4409
"end": "\\]",
4410
"name": "meta.chord.block.latex support.class.chord.block.environment.latex",
4411
"patterns": [
4412
{
4413
"include": "$self"
4414
}
4415
]
4416
},
4417
{
4418
"match": "\\^",
4419
"name": "meta.chord.block.latex support.class.chord.block.environment.latex"
4420
},
4421
{
4422
"include": "$self"
4423
}
4424
]
4425
}
4426
}
4427
}
4428