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