Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json
3314 views
1
{
2
"information_for_contributors": [
3
"This file has been converted from https://github.com/microsoft/vscode-markdown-tm-grammar/blob/master/syntaxes/markdown.tmLanguage",
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/microsoft/vscode-markdown-tm-grammar/commit/0812fc4b190efc17bfed0d5b4ff918eff8e4e377",
8
"name": "Markdown",
9
"scopeName": "text.html.markdown",
10
"patterns": [
11
{
12
"include": "#frontMatter"
13
},
14
{
15
"include": "#block"
16
}
17
],
18
"repository": {
19
"block": {
20
"patterns": [
21
{
22
"include": "#separator"
23
},
24
{
25
"include": "#heading"
26
},
27
{
28
"include": "#blockquote"
29
},
30
{
31
"include": "#lists"
32
},
33
{
34
"include": "#fenced_code_block"
35
},
36
{
37
"include": "#raw_block"
38
},
39
{
40
"include": "#link-def"
41
},
42
{
43
"include": "#html"
44
},
45
{
46
"include": "#table"
47
},
48
{
49
"include": "#paragraph"
50
}
51
]
52
},
53
"blockquote": {
54
"begin": "(^|\\G)[ ]{0,3}(>) ?",
55
"captures": {
56
"2": {
57
"name": "punctuation.definition.quote.begin.markdown"
58
}
59
},
60
"name": "markup.quote.markdown",
61
"patterns": [
62
{
63
"include": "#block"
64
}
65
],
66
"while": "(^|\\G)\\s*(>) ?"
67
},
68
"fenced_code_block_css": {
69
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
70
"name": "markup.fenced_code.block.markdown",
71
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
72
"beginCaptures": {
73
"3": {
74
"name": "punctuation.definition.markdown"
75
},
76
"4": {
77
"name": "fenced_code.block.language.markdown"
78
},
79
"5": {
80
"name": "fenced_code.block.language.attributes.markdown"
81
}
82
},
83
"endCaptures": {
84
"3": {
85
"name": "punctuation.definition.markdown"
86
}
87
},
88
"patterns": [
89
{
90
"begin": "(^|\\G)(\\s*)(.*)",
91
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
92
"contentName": "meta.embedded.block.css",
93
"patterns": [
94
{
95
"include": "source.css"
96
}
97
]
98
}
99
]
100
},
101
"fenced_code_block_basic": {
102
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
103
"name": "markup.fenced_code.block.markdown",
104
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
105
"beginCaptures": {
106
"3": {
107
"name": "punctuation.definition.markdown"
108
},
109
"4": {
110
"name": "fenced_code.block.language.markdown"
111
},
112
"5": {
113
"name": "fenced_code.block.language.attributes.markdown"
114
}
115
},
116
"endCaptures": {
117
"3": {
118
"name": "punctuation.definition.markdown"
119
}
120
},
121
"patterns": [
122
{
123
"begin": "(^|\\G)(\\s*)(.*)",
124
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
125
"contentName": "meta.embedded.block.html",
126
"patterns": [
127
{
128
"include": "text.html.basic"
129
}
130
]
131
}
132
]
133
},
134
"fenced_code_block_ini": {
135
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
136
"name": "markup.fenced_code.block.markdown",
137
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
138
"beginCaptures": {
139
"3": {
140
"name": "punctuation.definition.markdown"
141
},
142
"4": {
143
"name": "fenced_code.block.language.markdown"
144
},
145
"5": {
146
"name": "fenced_code.block.language.attributes.markdown"
147
}
148
},
149
"endCaptures": {
150
"3": {
151
"name": "punctuation.definition.markdown"
152
}
153
},
154
"patterns": [
155
{
156
"begin": "(^|\\G)(\\s*)(.*)",
157
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
158
"contentName": "meta.embedded.block.ini",
159
"patterns": [
160
{
161
"include": "source.ini"
162
}
163
]
164
}
165
]
166
},
167
"fenced_code_block_java": {
168
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
169
"name": "markup.fenced_code.block.markdown",
170
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
171
"beginCaptures": {
172
"3": {
173
"name": "punctuation.definition.markdown"
174
},
175
"4": {
176
"name": "fenced_code.block.language.markdown"
177
},
178
"5": {
179
"name": "fenced_code.block.language.attributes.markdown"
180
}
181
},
182
"endCaptures": {
183
"3": {
184
"name": "punctuation.definition.markdown"
185
}
186
},
187
"patterns": [
188
{
189
"begin": "(^|\\G)(\\s*)(.*)",
190
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
191
"contentName": "meta.embedded.block.java",
192
"patterns": [
193
{
194
"include": "source.java"
195
}
196
]
197
}
198
]
199
},
200
"fenced_code_block_lua": {
201
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
202
"name": "markup.fenced_code.block.markdown",
203
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
204
"beginCaptures": {
205
"3": {
206
"name": "punctuation.definition.markdown"
207
},
208
"4": {
209
"name": "fenced_code.block.language.markdown"
210
},
211
"5": {
212
"name": "fenced_code.block.language.attributes.markdown"
213
}
214
},
215
"endCaptures": {
216
"3": {
217
"name": "punctuation.definition.markdown"
218
}
219
},
220
"patterns": [
221
{
222
"begin": "(^|\\G)(\\s*)(.*)",
223
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
224
"contentName": "meta.embedded.block.lua",
225
"patterns": [
226
{
227
"include": "source.lua"
228
}
229
]
230
}
231
]
232
},
233
"fenced_code_block_makefile": {
234
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
235
"name": "markup.fenced_code.block.markdown",
236
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
237
"beginCaptures": {
238
"3": {
239
"name": "punctuation.definition.markdown"
240
},
241
"4": {
242
"name": "fenced_code.block.language.markdown"
243
},
244
"5": {
245
"name": "fenced_code.block.language.attributes.markdown"
246
}
247
},
248
"endCaptures": {
249
"3": {
250
"name": "punctuation.definition.markdown"
251
}
252
},
253
"patterns": [
254
{
255
"begin": "(^|\\G)(\\s*)(.*)",
256
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
257
"contentName": "meta.embedded.block.makefile",
258
"patterns": [
259
{
260
"include": "source.makefile"
261
}
262
]
263
}
264
]
265
},
266
"fenced_code_block_perl": {
267
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
268
"name": "markup.fenced_code.block.markdown",
269
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
270
"beginCaptures": {
271
"3": {
272
"name": "punctuation.definition.markdown"
273
},
274
"4": {
275
"name": "fenced_code.block.language.markdown"
276
},
277
"5": {
278
"name": "fenced_code.block.language.attributes.markdown"
279
}
280
},
281
"endCaptures": {
282
"3": {
283
"name": "punctuation.definition.markdown"
284
}
285
},
286
"patterns": [
287
{
288
"begin": "(^|\\G)(\\s*)(.*)",
289
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
290
"contentName": "meta.embedded.block.perl",
291
"patterns": [
292
{
293
"include": "source.perl"
294
}
295
]
296
}
297
]
298
},
299
"fenced_code_block_r": {
300
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
301
"name": "markup.fenced_code.block.markdown",
302
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
303
"beginCaptures": {
304
"3": {
305
"name": "punctuation.definition.markdown"
306
},
307
"4": {
308
"name": "fenced_code.block.language.markdown"
309
},
310
"5": {
311
"name": "fenced_code.block.language.attributes.markdown"
312
}
313
},
314
"endCaptures": {
315
"3": {
316
"name": "punctuation.definition.markdown"
317
}
318
},
319
"patterns": [
320
{
321
"begin": "(^|\\G)(\\s*)(.*)",
322
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
323
"contentName": "meta.embedded.block.r",
324
"patterns": [
325
{
326
"include": "source.r"
327
}
328
]
329
}
330
]
331
},
332
"fenced_code_block_ruby": {
333
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
334
"name": "markup.fenced_code.block.markdown",
335
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
336
"beginCaptures": {
337
"3": {
338
"name": "punctuation.definition.markdown"
339
},
340
"4": {
341
"name": "fenced_code.block.language.markdown"
342
},
343
"5": {
344
"name": "fenced_code.block.language.attributes.markdown"
345
}
346
},
347
"endCaptures": {
348
"3": {
349
"name": "punctuation.definition.markdown"
350
}
351
},
352
"patterns": [
353
{
354
"begin": "(^|\\G)(\\s*)(.*)",
355
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
356
"contentName": "meta.embedded.block.ruby",
357
"patterns": [
358
{
359
"include": "source.ruby"
360
}
361
]
362
}
363
]
364
},
365
"fenced_code_block_php": {
366
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
367
"name": "markup.fenced_code.block.markdown",
368
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
369
"beginCaptures": {
370
"3": {
371
"name": "punctuation.definition.markdown"
372
},
373
"4": {
374
"name": "fenced_code.block.language.markdown"
375
},
376
"5": {
377
"name": "fenced_code.block.language.attributes.markdown"
378
}
379
},
380
"endCaptures": {
381
"3": {
382
"name": "punctuation.definition.markdown"
383
}
384
},
385
"patterns": [
386
{
387
"begin": "(^|\\G)(\\s*)(.*)",
388
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
389
"contentName": "meta.embedded.block.php",
390
"patterns": [
391
{
392
"include": "text.html.basic"
393
},
394
{
395
"include": "source.php"
396
}
397
]
398
}
399
]
400
},
401
"fenced_code_block_sql": {
402
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
403
"name": "markup.fenced_code.block.markdown",
404
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
405
"beginCaptures": {
406
"3": {
407
"name": "punctuation.definition.markdown"
408
},
409
"4": {
410
"name": "fenced_code.block.language.markdown"
411
},
412
"5": {
413
"name": "fenced_code.block.language.attributes.markdown"
414
}
415
},
416
"endCaptures": {
417
"3": {
418
"name": "punctuation.definition.markdown"
419
}
420
},
421
"patterns": [
422
{
423
"begin": "(^|\\G)(\\s*)(.*)",
424
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
425
"contentName": "meta.embedded.block.sql",
426
"patterns": [
427
{
428
"include": "source.sql"
429
}
430
]
431
}
432
]
433
},
434
"fenced_code_block_vs_net": {
435
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
436
"name": "markup.fenced_code.block.markdown",
437
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
438
"beginCaptures": {
439
"3": {
440
"name": "punctuation.definition.markdown"
441
},
442
"4": {
443
"name": "fenced_code.block.language.markdown"
444
},
445
"5": {
446
"name": "fenced_code.block.language.attributes.markdown"
447
}
448
},
449
"endCaptures": {
450
"3": {
451
"name": "punctuation.definition.markdown"
452
}
453
},
454
"patterns": [
455
{
456
"begin": "(^|\\G)(\\s*)(.*)",
457
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
458
"contentName": "meta.embedded.block.vs_net",
459
"patterns": [
460
{
461
"include": "source.asp.vb.net"
462
}
463
]
464
}
465
]
466
},
467
"fenced_code_block_xml": {
468
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
469
"name": "markup.fenced_code.block.markdown",
470
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
471
"beginCaptures": {
472
"3": {
473
"name": "punctuation.definition.markdown"
474
},
475
"4": {
476
"name": "fenced_code.block.language.markdown"
477
},
478
"5": {
479
"name": "fenced_code.block.language.attributes.markdown"
480
}
481
},
482
"endCaptures": {
483
"3": {
484
"name": "punctuation.definition.markdown"
485
}
486
},
487
"patterns": [
488
{
489
"begin": "(^|\\G)(\\s*)(.*)",
490
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
491
"contentName": "meta.embedded.block.xml",
492
"patterns": [
493
{
494
"include": "text.xml"
495
}
496
]
497
}
498
]
499
},
500
"fenced_code_block_xsl": {
501
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
502
"name": "markup.fenced_code.block.markdown",
503
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
504
"beginCaptures": {
505
"3": {
506
"name": "punctuation.definition.markdown"
507
},
508
"4": {
509
"name": "fenced_code.block.language.markdown"
510
},
511
"5": {
512
"name": "fenced_code.block.language.attributes.markdown"
513
}
514
},
515
"endCaptures": {
516
"3": {
517
"name": "punctuation.definition.markdown"
518
}
519
},
520
"patterns": [
521
{
522
"begin": "(^|\\G)(\\s*)(.*)",
523
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
524
"contentName": "meta.embedded.block.xsl",
525
"patterns": [
526
{
527
"include": "text.xml.xsl"
528
}
529
]
530
}
531
]
532
},
533
"fenced_code_block_yaml": {
534
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
535
"name": "markup.fenced_code.block.markdown",
536
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
537
"beginCaptures": {
538
"3": {
539
"name": "punctuation.definition.markdown"
540
},
541
"4": {
542
"name": "fenced_code.block.language.markdown"
543
},
544
"5": {
545
"name": "fenced_code.block.language.attributes.markdown"
546
}
547
},
548
"endCaptures": {
549
"3": {
550
"name": "punctuation.definition.markdown"
551
}
552
},
553
"patterns": [
554
{
555
"begin": "(^|\\G)(\\s*)(.*)",
556
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
557
"contentName": "meta.embedded.block.yaml",
558
"patterns": [
559
{
560
"include": "source.yaml"
561
}
562
]
563
}
564
]
565
},
566
"fenced_code_block_dosbatch": {
567
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
568
"name": "markup.fenced_code.block.markdown",
569
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
570
"beginCaptures": {
571
"3": {
572
"name": "punctuation.definition.markdown"
573
},
574
"4": {
575
"name": "fenced_code.block.language.markdown"
576
},
577
"5": {
578
"name": "fenced_code.block.language.attributes.markdown"
579
}
580
},
581
"endCaptures": {
582
"3": {
583
"name": "punctuation.definition.markdown"
584
}
585
},
586
"patterns": [
587
{
588
"begin": "(^|\\G)(\\s*)(.*)",
589
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
590
"contentName": "meta.embedded.block.dosbatch",
591
"patterns": [
592
{
593
"include": "source.batchfile"
594
}
595
]
596
}
597
]
598
},
599
"fenced_code_block_clojure": {
600
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
601
"name": "markup.fenced_code.block.markdown",
602
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
603
"beginCaptures": {
604
"3": {
605
"name": "punctuation.definition.markdown"
606
},
607
"4": {
608
"name": "fenced_code.block.language.markdown"
609
},
610
"5": {
611
"name": "fenced_code.block.language.attributes.markdown"
612
}
613
},
614
"endCaptures": {
615
"3": {
616
"name": "punctuation.definition.markdown"
617
}
618
},
619
"patterns": [
620
{
621
"begin": "(^|\\G)(\\s*)(.*)",
622
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
623
"contentName": "meta.embedded.block.clojure",
624
"patterns": [
625
{
626
"include": "source.clojure"
627
}
628
]
629
}
630
]
631
},
632
"fenced_code_block_coffee": {
633
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
634
"name": "markup.fenced_code.block.markdown",
635
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
636
"beginCaptures": {
637
"3": {
638
"name": "punctuation.definition.markdown"
639
},
640
"4": {
641
"name": "fenced_code.block.language.markdown"
642
},
643
"5": {
644
"name": "fenced_code.block.language.attributes.markdown"
645
}
646
},
647
"endCaptures": {
648
"3": {
649
"name": "punctuation.definition.markdown"
650
}
651
},
652
"patterns": [
653
{
654
"begin": "(^|\\G)(\\s*)(.*)",
655
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
656
"contentName": "meta.embedded.block.coffee",
657
"patterns": [
658
{
659
"include": "source.coffee"
660
}
661
]
662
}
663
]
664
},
665
"fenced_code_block_c": {
666
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
667
"name": "markup.fenced_code.block.markdown",
668
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
669
"beginCaptures": {
670
"3": {
671
"name": "punctuation.definition.markdown"
672
},
673
"4": {
674
"name": "fenced_code.block.language.markdown"
675
},
676
"5": {
677
"name": "fenced_code.block.language.attributes.markdown"
678
}
679
},
680
"endCaptures": {
681
"3": {
682
"name": "punctuation.definition.markdown"
683
}
684
},
685
"patterns": [
686
{
687
"begin": "(^|\\G)(\\s*)(.*)",
688
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
689
"contentName": "meta.embedded.block.c",
690
"patterns": [
691
{
692
"include": "source.c"
693
}
694
]
695
}
696
]
697
},
698
"fenced_code_block_cpp": {
699
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
700
"name": "markup.fenced_code.block.markdown",
701
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
702
"beginCaptures": {
703
"3": {
704
"name": "punctuation.definition.markdown"
705
},
706
"4": {
707
"name": "fenced_code.block.language.markdown"
708
},
709
"5": {
710
"name": "fenced_code.block.language.attributes.markdown"
711
}
712
},
713
"endCaptures": {
714
"3": {
715
"name": "punctuation.definition.markdown"
716
}
717
},
718
"patterns": [
719
{
720
"begin": "(^|\\G)(\\s*)(.*)",
721
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
722
"contentName": "meta.embedded.block.cpp source.cpp",
723
"patterns": [
724
{
725
"include": "source.cpp"
726
}
727
]
728
}
729
]
730
},
731
"fenced_code_block_diff": {
732
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
733
"name": "markup.fenced_code.block.markdown",
734
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
735
"beginCaptures": {
736
"3": {
737
"name": "punctuation.definition.markdown"
738
},
739
"4": {
740
"name": "fenced_code.block.language.markdown"
741
},
742
"5": {
743
"name": "fenced_code.block.language.attributes.markdown"
744
}
745
},
746
"endCaptures": {
747
"3": {
748
"name": "punctuation.definition.markdown"
749
}
750
},
751
"patterns": [
752
{
753
"begin": "(^|\\G)(\\s*)(.*)",
754
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
755
"contentName": "meta.embedded.block.diff",
756
"patterns": [
757
{
758
"include": "source.diff"
759
}
760
]
761
}
762
]
763
},
764
"fenced_code_block_dockerfile": {
765
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
766
"name": "markup.fenced_code.block.markdown",
767
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
768
"beginCaptures": {
769
"3": {
770
"name": "punctuation.definition.markdown"
771
},
772
"4": {
773
"name": "fenced_code.block.language.markdown"
774
},
775
"5": {
776
"name": "fenced_code.block.language.attributes.markdown"
777
}
778
},
779
"endCaptures": {
780
"3": {
781
"name": "punctuation.definition.markdown"
782
}
783
},
784
"patterns": [
785
{
786
"begin": "(^|\\G)(\\s*)(.*)",
787
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
788
"contentName": "meta.embedded.block.dockerfile",
789
"patterns": [
790
{
791
"include": "source.dockerfile"
792
}
793
]
794
}
795
]
796
},
797
"fenced_code_block_git_commit": {
798
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
799
"name": "markup.fenced_code.block.markdown",
800
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
801
"beginCaptures": {
802
"3": {
803
"name": "punctuation.definition.markdown"
804
},
805
"4": {
806
"name": "fenced_code.block.language.markdown"
807
},
808
"5": {
809
"name": "fenced_code.block.language.attributes.markdown"
810
}
811
},
812
"endCaptures": {
813
"3": {
814
"name": "punctuation.definition.markdown"
815
}
816
},
817
"patterns": [
818
{
819
"begin": "(^|\\G)(\\s*)(.*)",
820
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
821
"contentName": "meta.embedded.block.git_commit",
822
"patterns": [
823
{
824
"include": "text.git-commit"
825
}
826
]
827
}
828
]
829
},
830
"fenced_code_block_git_rebase": {
831
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
832
"name": "markup.fenced_code.block.markdown",
833
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
834
"beginCaptures": {
835
"3": {
836
"name": "punctuation.definition.markdown"
837
},
838
"4": {
839
"name": "fenced_code.block.language.markdown"
840
},
841
"5": {
842
"name": "fenced_code.block.language.attributes.markdown"
843
}
844
},
845
"endCaptures": {
846
"3": {
847
"name": "punctuation.definition.markdown"
848
}
849
},
850
"patterns": [
851
{
852
"begin": "(^|\\G)(\\s*)(.*)",
853
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
854
"contentName": "meta.embedded.block.git_rebase",
855
"patterns": [
856
{
857
"include": "text.git-rebase"
858
}
859
]
860
}
861
]
862
},
863
"fenced_code_block_go": {
864
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
865
"name": "markup.fenced_code.block.markdown",
866
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
867
"beginCaptures": {
868
"3": {
869
"name": "punctuation.definition.markdown"
870
},
871
"4": {
872
"name": "fenced_code.block.language.markdown"
873
},
874
"5": {
875
"name": "fenced_code.block.language.attributes.markdown"
876
}
877
},
878
"endCaptures": {
879
"3": {
880
"name": "punctuation.definition.markdown"
881
}
882
},
883
"patterns": [
884
{
885
"begin": "(^|\\G)(\\s*)(.*)",
886
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
887
"contentName": "meta.embedded.block.go",
888
"patterns": [
889
{
890
"include": "source.go"
891
}
892
]
893
}
894
]
895
},
896
"fenced_code_block_groovy": {
897
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
898
"name": "markup.fenced_code.block.markdown",
899
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
900
"beginCaptures": {
901
"3": {
902
"name": "punctuation.definition.markdown"
903
},
904
"4": {
905
"name": "fenced_code.block.language.markdown"
906
},
907
"5": {
908
"name": "fenced_code.block.language.attributes.markdown"
909
}
910
},
911
"endCaptures": {
912
"3": {
913
"name": "punctuation.definition.markdown"
914
}
915
},
916
"patterns": [
917
{
918
"begin": "(^|\\G)(\\s*)(.*)",
919
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
920
"contentName": "meta.embedded.block.groovy",
921
"patterns": [
922
{
923
"include": "source.groovy"
924
}
925
]
926
}
927
]
928
},
929
"fenced_code_block_pug": {
930
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
931
"name": "markup.fenced_code.block.markdown",
932
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
933
"beginCaptures": {
934
"3": {
935
"name": "punctuation.definition.markdown"
936
},
937
"4": {
938
"name": "fenced_code.block.language.markdown"
939
},
940
"5": {
941
"name": "fenced_code.block.language.attributes.markdown"
942
}
943
},
944
"endCaptures": {
945
"3": {
946
"name": "punctuation.definition.markdown"
947
}
948
},
949
"patterns": [
950
{
951
"begin": "(^|\\G)(\\s*)(.*)",
952
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
953
"contentName": "meta.embedded.block.pug",
954
"patterns": [
955
{
956
"include": "text.pug"
957
}
958
]
959
}
960
]
961
},
962
"fenced_code_block_ignore": {
963
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(gitignore|ignore)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
964
"name": "markup.fenced_code.block.markdown",
965
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
966
"beginCaptures": {
967
"3": {
968
"name": "punctuation.definition.markdown"
969
},
970
"4": {
971
"name": "fenced_code.block.language.markdown"
972
},
973
"5": {
974
"name": "fenced_code.block.language.attributes.markdown"
975
}
976
},
977
"endCaptures": {
978
"3": {
979
"name": "punctuation.definition.markdown"
980
}
981
},
982
"patterns": [
983
{
984
"begin": "(^|\\G)(\\s*)(.*)",
985
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
986
"contentName": "meta.embedded.block.ignore",
987
"patterns": [
988
{
989
"include": "source.ignore"
990
}
991
]
992
}
993
]
994
},
995
"fenced_code_block_js": {
996
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\{\\.js.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
997
"name": "markup.fenced_code.block.markdown",
998
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
999
"beginCaptures": {
1000
"3": {
1001
"name": "punctuation.definition.markdown"
1002
},
1003
"4": {
1004
"name": "fenced_code.block.language.markdown"
1005
},
1006
"5": {
1007
"name": "fenced_code.block.language.attributes.markdown"
1008
}
1009
},
1010
"endCaptures": {
1011
"3": {
1012
"name": "punctuation.definition.markdown"
1013
}
1014
},
1015
"patterns": [
1016
{
1017
"begin": "(^|\\G)(\\s*)(.*)",
1018
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1019
"contentName": "meta.embedded.block.javascript",
1020
"patterns": [
1021
{
1022
"include": "source.js"
1023
}
1024
]
1025
}
1026
]
1027
},
1028
"fenced_code_block_js_regexp": {
1029
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1030
"name": "markup.fenced_code.block.markdown",
1031
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1032
"beginCaptures": {
1033
"3": {
1034
"name": "punctuation.definition.markdown"
1035
},
1036
"4": {
1037
"name": "fenced_code.block.language.markdown"
1038
},
1039
"5": {
1040
"name": "fenced_code.block.language.attributes.markdown"
1041
}
1042
},
1043
"endCaptures": {
1044
"3": {
1045
"name": "punctuation.definition.markdown"
1046
}
1047
},
1048
"patterns": [
1049
{
1050
"begin": "(^|\\G)(\\s*)(.*)",
1051
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1052
"contentName": "meta.embedded.block.js_regexp",
1053
"patterns": [
1054
{
1055
"include": "source.js.regexp"
1056
}
1057
]
1058
}
1059
]
1060
},
1061
"fenced_code_block_json": {
1062
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1063
"name": "markup.fenced_code.block.markdown",
1064
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1065
"beginCaptures": {
1066
"3": {
1067
"name": "punctuation.definition.markdown"
1068
},
1069
"4": {
1070
"name": "fenced_code.block.language.markdown"
1071
},
1072
"5": {
1073
"name": "fenced_code.block.language.attributes.markdown"
1074
}
1075
},
1076
"endCaptures": {
1077
"3": {
1078
"name": "punctuation.definition.markdown"
1079
}
1080
},
1081
"patterns": [
1082
{
1083
"begin": "(^|\\G)(\\s*)(.*)",
1084
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1085
"contentName": "meta.embedded.block.json",
1086
"patterns": [
1087
{
1088
"include": "source.json"
1089
}
1090
]
1091
}
1092
]
1093
},
1094
"fenced_code_block_jsonc": {
1095
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1096
"name": "markup.fenced_code.block.markdown",
1097
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1098
"beginCaptures": {
1099
"3": {
1100
"name": "punctuation.definition.markdown"
1101
},
1102
"4": {
1103
"name": "fenced_code.block.language.markdown"
1104
},
1105
"5": {
1106
"name": "fenced_code.block.language.attributes.markdown"
1107
}
1108
},
1109
"endCaptures": {
1110
"3": {
1111
"name": "punctuation.definition.markdown"
1112
}
1113
},
1114
"patterns": [
1115
{
1116
"begin": "(^|\\G)(\\s*)(.*)",
1117
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1118
"contentName": "meta.embedded.block.jsonc",
1119
"patterns": [
1120
{
1121
"include": "source.json.comments"
1122
}
1123
]
1124
}
1125
]
1126
},
1127
"fenced_code_block_jsonl": {
1128
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonl|jsonlines)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1129
"name": "markup.fenced_code.block.markdown",
1130
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1131
"beginCaptures": {
1132
"3": {
1133
"name": "punctuation.definition.markdown"
1134
},
1135
"4": {
1136
"name": "fenced_code.block.language.markdown"
1137
},
1138
"5": {
1139
"name": "fenced_code.block.language.attributes.markdown"
1140
}
1141
},
1142
"endCaptures": {
1143
"3": {
1144
"name": "punctuation.definition.markdown"
1145
}
1146
},
1147
"patterns": [
1148
{
1149
"begin": "(^|\\G)(\\s*)(.*)",
1150
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1151
"contentName": "meta.embedded.block.jsonl",
1152
"patterns": [
1153
{
1154
"include": "source.json.lines"
1155
}
1156
]
1157
}
1158
]
1159
},
1160
"fenced_code_block_less": {
1161
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1162
"name": "markup.fenced_code.block.markdown",
1163
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1164
"beginCaptures": {
1165
"3": {
1166
"name": "punctuation.definition.markdown"
1167
},
1168
"4": {
1169
"name": "fenced_code.block.language.markdown"
1170
},
1171
"5": {
1172
"name": "fenced_code.block.language.attributes.markdown"
1173
}
1174
},
1175
"endCaptures": {
1176
"3": {
1177
"name": "punctuation.definition.markdown"
1178
}
1179
},
1180
"patterns": [
1181
{
1182
"begin": "(^|\\G)(\\s*)(.*)",
1183
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1184
"contentName": "meta.embedded.block.less",
1185
"patterns": [
1186
{
1187
"include": "source.css.less"
1188
}
1189
]
1190
}
1191
]
1192
},
1193
"fenced_code_block_objc": {
1194
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1195
"name": "markup.fenced_code.block.markdown",
1196
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1197
"beginCaptures": {
1198
"3": {
1199
"name": "punctuation.definition.markdown"
1200
},
1201
"4": {
1202
"name": "fenced_code.block.language.markdown"
1203
},
1204
"5": {
1205
"name": "fenced_code.block.language.attributes.markdown"
1206
}
1207
},
1208
"endCaptures": {
1209
"3": {
1210
"name": "punctuation.definition.markdown"
1211
}
1212
},
1213
"patterns": [
1214
{
1215
"begin": "(^|\\G)(\\s*)(.*)",
1216
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1217
"contentName": "meta.embedded.block.objc",
1218
"patterns": [
1219
{
1220
"include": "source.objc"
1221
}
1222
]
1223
}
1224
]
1225
},
1226
"fenced_code_block_swift": {
1227
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1228
"name": "markup.fenced_code.block.markdown",
1229
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1230
"beginCaptures": {
1231
"3": {
1232
"name": "punctuation.definition.markdown"
1233
},
1234
"4": {
1235
"name": "fenced_code.block.language.markdown"
1236
},
1237
"5": {
1238
"name": "fenced_code.block.language.attributes.markdown"
1239
}
1240
},
1241
"endCaptures": {
1242
"3": {
1243
"name": "punctuation.definition.markdown"
1244
}
1245
},
1246
"patterns": [
1247
{
1248
"begin": "(^|\\G)(\\s*)(.*)",
1249
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1250
"contentName": "meta.embedded.block.swift",
1251
"patterns": [
1252
{
1253
"include": "source.swift"
1254
}
1255
]
1256
}
1257
]
1258
},
1259
"fenced_code_block_scss": {
1260
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1261
"name": "markup.fenced_code.block.markdown",
1262
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1263
"beginCaptures": {
1264
"3": {
1265
"name": "punctuation.definition.markdown"
1266
},
1267
"4": {
1268
"name": "fenced_code.block.language.markdown"
1269
},
1270
"5": {
1271
"name": "fenced_code.block.language.attributes.markdown"
1272
}
1273
},
1274
"endCaptures": {
1275
"3": {
1276
"name": "punctuation.definition.markdown"
1277
}
1278
},
1279
"patterns": [
1280
{
1281
"begin": "(^|\\G)(\\s*)(.*)",
1282
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1283
"contentName": "meta.embedded.block.scss",
1284
"patterns": [
1285
{
1286
"include": "source.css.scss"
1287
}
1288
]
1289
}
1290
]
1291
},
1292
"fenced_code_block_perl6": {
1293
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1294
"name": "markup.fenced_code.block.markdown",
1295
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1296
"beginCaptures": {
1297
"3": {
1298
"name": "punctuation.definition.markdown"
1299
},
1300
"4": {
1301
"name": "fenced_code.block.language.markdown"
1302
},
1303
"5": {
1304
"name": "fenced_code.block.language.attributes.markdown"
1305
}
1306
},
1307
"endCaptures": {
1308
"3": {
1309
"name": "punctuation.definition.markdown"
1310
}
1311
},
1312
"patterns": [
1313
{
1314
"begin": "(^|\\G)(\\s*)(.*)",
1315
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1316
"contentName": "meta.embedded.block.perl6",
1317
"patterns": [
1318
{
1319
"include": "source.perl.6"
1320
}
1321
]
1322
}
1323
]
1324
},
1325
"fenced_code_block_powershell": {
1326
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1|pwsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1327
"name": "markup.fenced_code.block.markdown",
1328
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1329
"beginCaptures": {
1330
"3": {
1331
"name": "punctuation.definition.markdown"
1332
},
1333
"4": {
1334
"name": "fenced_code.block.language.markdown"
1335
},
1336
"5": {
1337
"name": "fenced_code.block.language.attributes.markdown"
1338
}
1339
},
1340
"endCaptures": {
1341
"3": {
1342
"name": "punctuation.definition.markdown"
1343
}
1344
},
1345
"patterns": [
1346
{
1347
"begin": "(^|\\G)(\\s*)(.*)",
1348
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1349
"contentName": "meta.embedded.block.powershell",
1350
"patterns": [
1351
{
1352
"include": "source.powershell"
1353
}
1354
]
1355
}
1356
]
1357
},
1358
"fenced_code_block_python": {
1359
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1360
"name": "markup.fenced_code.block.markdown",
1361
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1362
"beginCaptures": {
1363
"3": {
1364
"name": "punctuation.definition.markdown"
1365
},
1366
"4": {
1367
"name": "fenced_code.block.language.markdown"
1368
},
1369
"5": {
1370
"name": "fenced_code.block.language.attributes.markdown"
1371
}
1372
},
1373
"endCaptures": {
1374
"3": {
1375
"name": "punctuation.definition.markdown"
1376
}
1377
},
1378
"patterns": [
1379
{
1380
"begin": "(^|\\G)(\\s*)(.*)",
1381
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1382
"contentName": "meta.embedded.block.python",
1383
"patterns": [
1384
{
1385
"include": "source.python"
1386
}
1387
]
1388
}
1389
]
1390
},
1391
"fenced_code_block_julia": {
1392
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1393
"name": "markup.fenced_code.block.markdown",
1394
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1395
"beginCaptures": {
1396
"3": {
1397
"name": "punctuation.definition.markdown"
1398
},
1399
"4": {
1400
"name": "fenced_code.block.language.markdown"
1401
},
1402
"5": {
1403
"name": "fenced_code.block.language.attributes.markdown"
1404
}
1405
},
1406
"endCaptures": {
1407
"3": {
1408
"name": "punctuation.definition.markdown"
1409
}
1410
},
1411
"patterns": [
1412
{
1413
"begin": "(^|\\G)(\\s*)(.*)",
1414
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1415
"contentName": "meta.embedded.block.julia",
1416
"patterns": [
1417
{
1418
"include": "source.julia"
1419
}
1420
]
1421
}
1422
]
1423
},
1424
"fenced_code_block_regexp_python": {
1425
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1426
"name": "markup.fenced_code.block.markdown",
1427
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1428
"beginCaptures": {
1429
"3": {
1430
"name": "punctuation.definition.markdown"
1431
},
1432
"4": {
1433
"name": "fenced_code.block.language.markdown"
1434
},
1435
"5": {
1436
"name": "fenced_code.block.language.attributes.markdown"
1437
}
1438
},
1439
"endCaptures": {
1440
"3": {
1441
"name": "punctuation.definition.markdown"
1442
}
1443
},
1444
"patterns": [
1445
{
1446
"begin": "(^|\\G)(\\s*)(.*)",
1447
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1448
"contentName": "meta.embedded.block.regexp_python",
1449
"patterns": [
1450
{
1451
"include": "source.regexp.python"
1452
}
1453
]
1454
}
1455
]
1456
},
1457
"fenced_code_block_rust": {
1458
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1459
"name": "markup.fenced_code.block.markdown",
1460
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1461
"beginCaptures": {
1462
"3": {
1463
"name": "punctuation.definition.markdown"
1464
},
1465
"4": {
1466
"name": "fenced_code.block.language.markdown"
1467
},
1468
"5": {
1469
"name": "fenced_code.block.language.attributes.markdown"
1470
}
1471
},
1472
"endCaptures": {
1473
"3": {
1474
"name": "punctuation.definition.markdown"
1475
}
1476
},
1477
"patterns": [
1478
{
1479
"begin": "(^|\\G)(\\s*)(.*)",
1480
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1481
"contentName": "meta.embedded.block.rust",
1482
"patterns": [
1483
{
1484
"include": "source.rust"
1485
}
1486
]
1487
}
1488
]
1489
},
1490
"fenced_code_block_scala": {
1491
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1492
"name": "markup.fenced_code.block.markdown",
1493
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1494
"beginCaptures": {
1495
"3": {
1496
"name": "punctuation.definition.markdown"
1497
},
1498
"4": {
1499
"name": "fenced_code.block.language.markdown"
1500
},
1501
"5": {
1502
"name": "fenced_code.block.language.attributes.markdown"
1503
}
1504
},
1505
"endCaptures": {
1506
"3": {
1507
"name": "punctuation.definition.markdown"
1508
}
1509
},
1510
"patterns": [
1511
{
1512
"begin": "(^|\\G)(\\s*)(.*)",
1513
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1514
"contentName": "meta.embedded.block.scala",
1515
"patterns": [
1516
{
1517
"include": "source.scala"
1518
}
1519
]
1520
}
1521
]
1522
},
1523
"fenced_code_block_shell": {
1524
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1525
"name": "markup.fenced_code.block.markdown",
1526
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1527
"beginCaptures": {
1528
"3": {
1529
"name": "punctuation.definition.markdown"
1530
},
1531
"4": {
1532
"name": "fenced_code.block.language.markdown"
1533
},
1534
"5": {
1535
"name": "fenced_code.block.language.attributes.markdown"
1536
}
1537
},
1538
"endCaptures": {
1539
"3": {
1540
"name": "punctuation.definition.markdown"
1541
}
1542
},
1543
"patterns": [
1544
{
1545
"begin": "(^|\\G)(\\s*)(.*)",
1546
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1547
"contentName": "meta.embedded.block.shellscript",
1548
"patterns": [
1549
{
1550
"include": "source.shell"
1551
}
1552
]
1553
}
1554
]
1555
},
1556
"fenced_code_block_ts": {
1557
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1558
"name": "markup.fenced_code.block.markdown",
1559
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1560
"beginCaptures": {
1561
"3": {
1562
"name": "punctuation.definition.markdown"
1563
},
1564
"4": {
1565
"name": "fenced_code.block.language.markdown"
1566
},
1567
"5": {
1568
"name": "fenced_code.block.language.attributes.markdown"
1569
}
1570
},
1571
"endCaptures": {
1572
"3": {
1573
"name": "punctuation.definition.markdown"
1574
}
1575
},
1576
"patterns": [
1577
{
1578
"begin": "(^|\\G)(\\s*)(.*)",
1579
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1580
"contentName": "meta.embedded.block.typescript",
1581
"patterns": [
1582
{
1583
"include": "source.ts"
1584
}
1585
]
1586
}
1587
]
1588
},
1589
"fenced_code_block_tsx": {
1590
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1591
"name": "markup.fenced_code.block.markdown",
1592
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1593
"beginCaptures": {
1594
"3": {
1595
"name": "punctuation.definition.markdown"
1596
},
1597
"4": {
1598
"name": "fenced_code.block.language.markdown"
1599
},
1600
"5": {
1601
"name": "fenced_code.block.language.attributes.markdown"
1602
}
1603
},
1604
"endCaptures": {
1605
"3": {
1606
"name": "punctuation.definition.markdown"
1607
}
1608
},
1609
"patterns": [
1610
{
1611
"begin": "(^|\\G)(\\s*)(.*)",
1612
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1613
"contentName": "meta.embedded.block.typescriptreact",
1614
"patterns": [
1615
{
1616
"include": "source.tsx"
1617
}
1618
]
1619
}
1620
]
1621
},
1622
"fenced_code_block_csharp": {
1623
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1624
"name": "markup.fenced_code.block.markdown",
1625
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1626
"beginCaptures": {
1627
"3": {
1628
"name": "punctuation.definition.markdown"
1629
},
1630
"4": {
1631
"name": "fenced_code.block.language.markdown"
1632
},
1633
"5": {
1634
"name": "fenced_code.block.language.attributes.markdown"
1635
}
1636
},
1637
"endCaptures": {
1638
"3": {
1639
"name": "punctuation.definition.markdown"
1640
}
1641
},
1642
"patterns": [
1643
{
1644
"begin": "(^|\\G)(\\s*)(.*)",
1645
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1646
"contentName": "meta.embedded.block.csharp",
1647
"patterns": [
1648
{
1649
"include": "source.cs"
1650
}
1651
]
1652
}
1653
]
1654
},
1655
"fenced_code_block_fsharp": {
1656
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1657
"name": "markup.fenced_code.block.markdown",
1658
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1659
"beginCaptures": {
1660
"3": {
1661
"name": "punctuation.definition.markdown"
1662
},
1663
"4": {
1664
"name": "fenced_code.block.language.markdown"
1665
},
1666
"5": {
1667
"name": "fenced_code.block.language.attributes.markdown"
1668
}
1669
},
1670
"endCaptures": {
1671
"3": {
1672
"name": "punctuation.definition.markdown"
1673
}
1674
},
1675
"patterns": [
1676
{
1677
"begin": "(^|\\G)(\\s*)(.*)",
1678
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1679
"contentName": "meta.embedded.block.fsharp",
1680
"patterns": [
1681
{
1682
"include": "source.fsharp"
1683
}
1684
]
1685
}
1686
]
1687
},
1688
"fenced_code_block_dart": {
1689
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1690
"name": "markup.fenced_code.block.markdown",
1691
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1692
"beginCaptures": {
1693
"3": {
1694
"name": "punctuation.definition.markdown"
1695
},
1696
"4": {
1697
"name": "fenced_code.block.language.markdown"
1698
},
1699
"5": {
1700
"name": "fenced_code.block.language.attributes.markdown"
1701
}
1702
},
1703
"endCaptures": {
1704
"3": {
1705
"name": "punctuation.definition.markdown"
1706
}
1707
},
1708
"patterns": [
1709
{
1710
"begin": "(^|\\G)(\\s*)(.*)",
1711
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1712
"contentName": "meta.embedded.block.dart",
1713
"patterns": [
1714
{
1715
"include": "source.dart"
1716
}
1717
]
1718
}
1719
]
1720
},
1721
"fenced_code_block_handlebars": {
1722
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1723
"name": "markup.fenced_code.block.markdown",
1724
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1725
"beginCaptures": {
1726
"3": {
1727
"name": "punctuation.definition.markdown"
1728
},
1729
"4": {
1730
"name": "fenced_code.block.language.markdown"
1731
},
1732
"5": {
1733
"name": "fenced_code.block.language.attributes.markdown"
1734
}
1735
},
1736
"endCaptures": {
1737
"3": {
1738
"name": "punctuation.definition.markdown"
1739
}
1740
},
1741
"patterns": [
1742
{
1743
"begin": "(^|\\G)(\\s*)(.*)",
1744
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1745
"contentName": "meta.embedded.block.handlebars",
1746
"patterns": [
1747
{
1748
"include": "text.html.handlebars"
1749
}
1750
]
1751
}
1752
]
1753
},
1754
"fenced_code_block_markdown": {
1755
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1756
"name": "markup.fenced_code.block.markdown",
1757
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1758
"beginCaptures": {
1759
"3": {
1760
"name": "punctuation.definition.markdown"
1761
},
1762
"4": {
1763
"name": "fenced_code.block.language.markdown"
1764
},
1765
"5": {
1766
"name": "fenced_code.block.language.attributes.markdown"
1767
}
1768
},
1769
"endCaptures": {
1770
"3": {
1771
"name": "punctuation.definition.markdown"
1772
}
1773
},
1774
"patterns": [
1775
{
1776
"begin": "(^|\\G)(\\s*)(.*)",
1777
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1778
"contentName": "meta.embedded.block.markdown",
1779
"patterns": [
1780
{
1781
"include": "text.html.markdown"
1782
}
1783
]
1784
}
1785
]
1786
},
1787
"fenced_code_block_log": {
1788
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1789
"name": "markup.fenced_code.block.markdown",
1790
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1791
"beginCaptures": {
1792
"3": {
1793
"name": "punctuation.definition.markdown"
1794
},
1795
"4": {
1796
"name": "fenced_code.block.language.markdown"
1797
},
1798
"5": {
1799
"name": "fenced_code.block.language.attributes.markdown"
1800
}
1801
},
1802
"endCaptures": {
1803
"3": {
1804
"name": "punctuation.definition.markdown"
1805
}
1806
},
1807
"patterns": [
1808
{
1809
"begin": "(^|\\G)(\\s*)(.*)",
1810
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1811
"contentName": "meta.embedded.block.log",
1812
"patterns": [
1813
{
1814
"include": "text.log"
1815
}
1816
]
1817
}
1818
]
1819
},
1820
"fenced_code_block_erlang": {
1821
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1822
"name": "markup.fenced_code.block.markdown",
1823
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1824
"beginCaptures": {
1825
"3": {
1826
"name": "punctuation.definition.markdown"
1827
},
1828
"4": {
1829
"name": "fenced_code.block.language.markdown"
1830
},
1831
"5": {
1832
"name": "fenced_code.block.language.attributes.markdown"
1833
}
1834
},
1835
"endCaptures": {
1836
"3": {
1837
"name": "punctuation.definition.markdown"
1838
}
1839
},
1840
"patterns": [
1841
{
1842
"begin": "(^|\\G)(\\s*)(.*)",
1843
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1844
"contentName": "meta.embedded.block.erlang",
1845
"patterns": [
1846
{
1847
"include": "source.erlang"
1848
}
1849
]
1850
}
1851
]
1852
},
1853
"fenced_code_block_elixir": {
1854
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1855
"name": "markup.fenced_code.block.markdown",
1856
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1857
"beginCaptures": {
1858
"3": {
1859
"name": "punctuation.definition.markdown"
1860
},
1861
"4": {
1862
"name": "fenced_code.block.language.markdown"
1863
},
1864
"5": {
1865
"name": "fenced_code.block.language.attributes.markdown"
1866
}
1867
},
1868
"endCaptures": {
1869
"3": {
1870
"name": "punctuation.definition.markdown"
1871
}
1872
},
1873
"patterns": [
1874
{
1875
"begin": "(^|\\G)(\\s*)(.*)",
1876
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1877
"contentName": "meta.embedded.block.elixir",
1878
"patterns": [
1879
{
1880
"include": "source.elixir"
1881
}
1882
]
1883
}
1884
]
1885
},
1886
"fenced_code_block_latex": {
1887
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1888
"name": "markup.fenced_code.block.markdown",
1889
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1890
"beginCaptures": {
1891
"3": {
1892
"name": "punctuation.definition.markdown"
1893
},
1894
"4": {
1895
"name": "fenced_code.block.language.markdown"
1896
},
1897
"5": {
1898
"name": "fenced_code.block.language.attributes.markdown"
1899
}
1900
},
1901
"endCaptures": {
1902
"3": {
1903
"name": "punctuation.definition.markdown"
1904
}
1905
},
1906
"patterns": [
1907
{
1908
"begin": "(^|\\G)(\\s*)(.*)",
1909
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1910
"contentName": "meta.embedded.block.latex",
1911
"patterns": [
1912
{
1913
"include": "text.tex.latex"
1914
}
1915
]
1916
}
1917
]
1918
},
1919
"fenced_code_block_bibtex": {
1920
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1921
"name": "markup.fenced_code.block.markdown",
1922
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1923
"beginCaptures": {
1924
"3": {
1925
"name": "punctuation.definition.markdown"
1926
},
1927
"4": {
1928
"name": "fenced_code.block.language.markdown"
1929
},
1930
"5": {
1931
"name": "fenced_code.block.language.attributes.markdown"
1932
}
1933
},
1934
"endCaptures": {
1935
"3": {
1936
"name": "punctuation.definition.markdown"
1937
}
1938
},
1939
"patterns": [
1940
{
1941
"begin": "(^|\\G)(\\s*)(.*)",
1942
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1943
"contentName": "meta.embedded.block.bibtex",
1944
"patterns": [
1945
{
1946
"include": "text.bibtex"
1947
}
1948
]
1949
}
1950
]
1951
},
1952
"fenced_code_block_twig": {
1953
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(twig)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1954
"name": "markup.fenced_code.block.markdown",
1955
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1956
"beginCaptures": {
1957
"3": {
1958
"name": "punctuation.definition.markdown"
1959
},
1960
"4": {
1961
"name": "fenced_code.block.language.markdown"
1962
},
1963
"5": {
1964
"name": "fenced_code.block.language.attributes.markdown"
1965
}
1966
},
1967
"endCaptures": {
1968
"3": {
1969
"name": "punctuation.definition.markdown"
1970
}
1971
},
1972
"patterns": [
1973
{
1974
"begin": "(^|\\G)(\\s*)(.*)",
1975
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
1976
"contentName": "meta.embedded.block.twig",
1977
"patterns": [
1978
{
1979
"include": "source.twig"
1980
}
1981
]
1982
}
1983
]
1984
},
1985
"fenced_code_block_yang": {
1986
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
1987
"name": "markup.fenced_code.block.markdown",
1988
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
1989
"beginCaptures": {
1990
"3": {
1991
"name": "punctuation.definition.markdown"
1992
},
1993
"4": {
1994
"name": "fenced_code.block.language.markdown"
1995
},
1996
"5": {
1997
"name": "fenced_code.block.language.attributes.markdown"
1998
}
1999
},
2000
"endCaptures": {
2001
"3": {
2002
"name": "punctuation.definition.markdown"
2003
}
2004
},
2005
"patterns": [
2006
{
2007
"begin": "(^|\\G)(\\s*)(.*)",
2008
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
2009
"contentName": "meta.embedded.block.yang",
2010
"patterns": [
2011
{
2012
"include": "source.yang"
2013
}
2014
]
2015
}
2016
]
2017
},
2018
"fenced_code_block_abap": {
2019
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(abap)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
2020
"name": "markup.fenced_code.block.markdown",
2021
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
2022
"beginCaptures": {
2023
"3": {
2024
"name": "punctuation.definition.markdown"
2025
},
2026
"4": {
2027
"name": "fenced_code.block.language.markdown"
2028
},
2029
"5": {
2030
"name": "fenced_code.block.language.attributes.markdown"
2031
}
2032
},
2033
"endCaptures": {
2034
"3": {
2035
"name": "punctuation.definition.markdown"
2036
}
2037
},
2038
"patterns": [
2039
{
2040
"begin": "(^|\\G)(\\s*)(.*)",
2041
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
2042
"contentName": "meta.embedded.block.abap",
2043
"patterns": [
2044
{
2045
"include": "source.abap"
2046
}
2047
]
2048
}
2049
]
2050
},
2051
"fenced_code_block_restructuredtext": {
2052
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(restructuredtext|rst)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
2053
"name": "markup.fenced_code.block.markdown",
2054
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
2055
"beginCaptures": {
2056
"3": {
2057
"name": "punctuation.definition.markdown"
2058
},
2059
"4": {
2060
"name": "fenced_code.block.language.markdown"
2061
},
2062
"5": {
2063
"name": "fenced_code.block.language.attributes.markdown"
2064
}
2065
},
2066
"endCaptures": {
2067
"3": {
2068
"name": "punctuation.definition.markdown"
2069
}
2070
},
2071
"patterns": [
2072
{
2073
"begin": "(^|\\G)(\\s*)(.*)",
2074
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
2075
"contentName": "meta.embedded.block.restructuredtext",
2076
"patterns": [
2077
{
2078
"include": "source.rst"
2079
}
2080
]
2081
}
2082
]
2083
},
2084
"fenced_code_block": {
2085
"patterns": [
2086
{
2087
"include": "#fenced_code_block_css"
2088
},
2089
{
2090
"include": "#fenced_code_block_basic"
2091
},
2092
{
2093
"include": "#fenced_code_block_ini"
2094
},
2095
{
2096
"include": "#fenced_code_block_java"
2097
},
2098
{
2099
"include": "#fenced_code_block_lua"
2100
},
2101
{
2102
"include": "#fenced_code_block_makefile"
2103
},
2104
{
2105
"include": "#fenced_code_block_perl"
2106
},
2107
{
2108
"include": "#fenced_code_block_r"
2109
},
2110
{
2111
"include": "#fenced_code_block_ruby"
2112
},
2113
{
2114
"include": "#fenced_code_block_php"
2115
},
2116
{
2117
"include": "#fenced_code_block_sql"
2118
},
2119
{
2120
"include": "#fenced_code_block_vs_net"
2121
},
2122
{
2123
"include": "#fenced_code_block_xml"
2124
},
2125
{
2126
"include": "#fenced_code_block_xsl"
2127
},
2128
{
2129
"include": "#fenced_code_block_yaml"
2130
},
2131
{
2132
"include": "#fenced_code_block_dosbatch"
2133
},
2134
{
2135
"include": "#fenced_code_block_clojure"
2136
},
2137
{
2138
"include": "#fenced_code_block_coffee"
2139
},
2140
{
2141
"include": "#fenced_code_block_c"
2142
},
2143
{
2144
"include": "#fenced_code_block_cpp"
2145
},
2146
{
2147
"include": "#fenced_code_block_diff"
2148
},
2149
{
2150
"include": "#fenced_code_block_dockerfile"
2151
},
2152
{
2153
"include": "#fenced_code_block_git_commit"
2154
},
2155
{
2156
"include": "#fenced_code_block_git_rebase"
2157
},
2158
{
2159
"include": "#fenced_code_block_go"
2160
},
2161
{
2162
"include": "#fenced_code_block_groovy"
2163
},
2164
{
2165
"include": "#fenced_code_block_pug"
2166
},
2167
{
2168
"include": "#fenced_code_block_ignore"
2169
},
2170
{
2171
"include": "#fenced_code_block_js"
2172
},
2173
{
2174
"include": "#fenced_code_block_js_regexp"
2175
},
2176
{
2177
"include": "#fenced_code_block_json"
2178
},
2179
{
2180
"include": "#fenced_code_block_jsonc"
2181
},
2182
{
2183
"include": "#fenced_code_block_jsonl"
2184
},
2185
{
2186
"include": "#fenced_code_block_less"
2187
},
2188
{
2189
"include": "#fenced_code_block_objc"
2190
},
2191
{
2192
"include": "#fenced_code_block_swift"
2193
},
2194
{
2195
"include": "#fenced_code_block_scss"
2196
},
2197
{
2198
"include": "#fenced_code_block_perl6"
2199
},
2200
{
2201
"include": "#fenced_code_block_powershell"
2202
},
2203
{
2204
"include": "#fenced_code_block_python"
2205
},
2206
{
2207
"include": "#fenced_code_block_julia"
2208
},
2209
{
2210
"include": "#fenced_code_block_regexp_python"
2211
},
2212
{
2213
"include": "#fenced_code_block_rust"
2214
},
2215
{
2216
"include": "#fenced_code_block_scala"
2217
},
2218
{
2219
"include": "#fenced_code_block_shell"
2220
},
2221
{
2222
"include": "#fenced_code_block_ts"
2223
},
2224
{
2225
"include": "#fenced_code_block_tsx"
2226
},
2227
{
2228
"include": "#fenced_code_block_csharp"
2229
},
2230
{
2231
"include": "#fenced_code_block_fsharp"
2232
},
2233
{
2234
"include": "#fenced_code_block_dart"
2235
},
2236
{
2237
"include": "#fenced_code_block_handlebars"
2238
},
2239
{
2240
"include": "#fenced_code_block_markdown"
2241
},
2242
{
2243
"include": "#fenced_code_block_log"
2244
},
2245
{
2246
"include": "#fenced_code_block_erlang"
2247
},
2248
{
2249
"include": "#fenced_code_block_elixir"
2250
},
2251
{
2252
"include": "#fenced_code_block_latex"
2253
},
2254
{
2255
"include": "#fenced_code_block_bibtex"
2256
},
2257
{
2258
"include": "#fenced_code_block_twig"
2259
},
2260
{
2261
"include": "#fenced_code_block_yang"
2262
},
2263
{
2264
"include": "#fenced_code_block_abap"
2265
},
2266
{
2267
"include": "#fenced_code_block_restructuredtext"
2268
},
2269
{
2270
"include": "#fenced_code_block_unknown"
2271
}
2272
]
2273
},
2274
"fenced_code_block_unknown": {
2275
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`]*)?$)",
2276
"beginCaptures": {
2277
"3": {
2278
"name": "punctuation.definition.markdown"
2279
},
2280
"4": {
2281
"name": "fenced_code.block.language"
2282
}
2283
},
2284
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
2285
"endCaptures": {
2286
"3": {
2287
"name": "punctuation.definition.markdown"
2288
}
2289
},
2290
"name": "markup.fenced_code.block.markdown"
2291
},
2292
"heading": {
2293
"match": "(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$",
2294
"captures": {
2295
"1": {
2296
"patterns": [
2297
{
2298
"match": "(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$",
2299
"name": "heading.6.markdown",
2300
"captures": {
2301
"1": {
2302
"name": "punctuation.definition.heading.markdown"
2303
},
2304
"2": {
2305
"name": "entity.name.section.markdown",
2306
"patterns": [
2307
{
2308
"include": "#inline"
2309
},
2310
{
2311
"include": "text.html.derivative"
2312
}
2313
]
2314
},
2315
"3": {
2316
"name": "punctuation.definition.heading.markdown"
2317
}
2318
}
2319
},
2320
{
2321
"match": "(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$",
2322
"name": "heading.5.markdown",
2323
"captures": {
2324
"1": {
2325
"name": "punctuation.definition.heading.markdown"
2326
},
2327
"2": {
2328
"name": "entity.name.section.markdown",
2329
"patterns": [
2330
{
2331
"include": "#inline"
2332
},
2333
{
2334
"include": "text.html.derivative"
2335
}
2336
]
2337
},
2338
"3": {
2339
"name": "punctuation.definition.heading.markdown"
2340
}
2341
}
2342
},
2343
{
2344
"match": "(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$",
2345
"name": "heading.4.markdown",
2346
"captures": {
2347
"1": {
2348
"name": "punctuation.definition.heading.markdown"
2349
},
2350
"2": {
2351
"name": "entity.name.section.markdown",
2352
"patterns": [
2353
{
2354
"include": "#inline"
2355
},
2356
{
2357
"include": "text.html.derivative"
2358
}
2359
]
2360
},
2361
"3": {
2362
"name": "punctuation.definition.heading.markdown"
2363
}
2364
}
2365
},
2366
{
2367
"match": "(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$",
2368
"name": "heading.3.markdown",
2369
"captures": {
2370
"1": {
2371
"name": "punctuation.definition.heading.markdown"
2372
},
2373
"2": {
2374
"name": "entity.name.section.markdown",
2375
"patterns": [
2376
{
2377
"include": "#inline"
2378
},
2379
{
2380
"include": "text.html.derivative"
2381
}
2382
]
2383
},
2384
"3": {
2385
"name": "punctuation.definition.heading.markdown"
2386
}
2387
}
2388
},
2389
{
2390
"match": "(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$",
2391
"name": "heading.2.markdown",
2392
"captures": {
2393
"1": {
2394
"name": "punctuation.definition.heading.markdown"
2395
},
2396
"2": {
2397
"name": "entity.name.section.markdown",
2398
"patterns": [
2399
{
2400
"include": "#inline"
2401
},
2402
{
2403
"include": "text.html.derivative"
2404
}
2405
]
2406
},
2407
"3": {
2408
"name": "punctuation.definition.heading.markdown"
2409
}
2410
}
2411
},
2412
{
2413
"match": "(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$",
2414
"name": "heading.1.markdown",
2415
"captures": {
2416
"1": {
2417
"name": "punctuation.definition.heading.markdown"
2418
},
2419
"2": {
2420
"name": "entity.name.section.markdown",
2421
"patterns": [
2422
{
2423
"include": "#inline"
2424
},
2425
{
2426
"include": "text.html.derivative"
2427
}
2428
]
2429
},
2430
"3": {
2431
"name": "punctuation.definition.heading.markdown"
2432
}
2433
}
2434
}
2435
]
2436
}
2437
},
2438
"name": "markup.heading.markdown"
2439
},
2440
"heading-setext": {
2441
"patterns": [
2442
{
2443
"match": "^(={3,})(?=[ \\t]*$\\n?)",
2444
"name": "markup.heading.setext.1.markdown"
2445
},
2446
{
2447
"match": "^(-{3,})(?=[ \\t]*$\\n?)",
2448
"name": "markup.heading.setext.2.markdown"
2449
}
2450
]
2451
},
2452
"html": {
2453
"patterns": [
2454
{
2455
"begin": "(^|\\G)\\s*(<!--)",
2456
"captures": {
2457
"1": {
2458
"name": "punctuation.definition.comment.html"
2459
},
2460
"2": {
2461
"name": "punctuation.definition.comment.html"
2462
}
2463
},
2464
"end": "(-->)",
2465
"name": "comment.block.html"
2466
},
2467
{
2468
"begin": "(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?</(script|style|pre)>))",
2469
"end": "(?i)(.*)((</)(script|style|pre)(>))",
2470
"endCaptures": {
2471
"1": {
2472
"patterns": [
2473
{
2474
"include": "text.html.derivative"
2475
}
2476
]
2477
},
2478
"2": {
2479
"name": "meta.tag.structure.$4.end.html"
2480
},
2481
"3": {
2482
"name": "punctuation.definition.tag.begin.html"
2483
},
2484
"4": {
2485
"name": "entity.name.tag.html"
2486
},
2487
"5": {
2488
"name": "punctuation.definition.tag.end.html"
2489
}
2490
},
2491
"patterns": [
2492
{
2493
"begin": "(\\s*|$)",
2494
"patterns": [
2495
{
2496
"include": "text.html.derivative"
2497
}
2498
],
2499
"while": "(?i)^(?!.*</(script|style|pre)>)"
2500
}
2501
]
2502
},
2503
{
2504
"begin": "(?i)(^|\\G)\\s*(?=</?[a-zA-Z]+[^\\s/&gt;]*(\\s|$|/?>))",
2505
"patterns": [
2506
{
2507
"include": "text.html.derivative"
2508
}
2509
],
2510
"while": "^(?!\\s*$)"
2511
},
2512
{
2513
"begin": "(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|</[a-zA-Z0-9\\-]>)\\s*$)",
2514
"patterns": [
2515
{
2516
"include": "text.html.derivative"
2517
}
2518
],
2519
"while": "^(?!\\s*$)"
2520
}
2521
]
2522
},
2523
"link-def": {
2524
"captures": {
2525
"1": {
2526
"name": "punctuation.definition.constant.markdown"
2527
},
2528
"2": {
2529
"name": "constant.other.reference.link.markdown"
2530
},
2531
"3": {
2532
"name": "punctuation.definition.constant.markdown"
2533
},
2534
"4": {
2535
"name": "punctuation.separator.key-value.markdown"
2536
},
2537
"5": {
2538
"name": "punctuation.definition.link.markdown"
2539
},
2540
"6": {
2541
"name": "markup.underline.link.markdown"
2542
},
2543
"7": {
2544
"name": "punctuation.definition.link.markdown"
2545
},
2546
"8": {
2547
"name": "markup.underline.link.markdown"
2548
},
2549
"9": {
2550
"name": "string.other.link.description.title.markdown"
2551
},
2552
"10": {
2553
"name": "punctuation.definition.string.begin.markdown"
2554
},
2555
"11": {
2556
"name": "punctuation.definition.string.end.markdown"
2557
},
2558
"12": {
2559
"name": "string.other.link.description.title.markdown"
2560
},
2561
"13": {
2562
"name": "punctuation.definition.string.begin.markdown"
2563
},
2564
"14": {
2565
"name": "punctuation.definition.string.end.markdown"
2566
},
2567
"15": {
2568
"name": "string.other.link.description.title.markdown"
2569
},
2570
"16": {
2571
"name": "punctuation.definition.string.begin.markdown"
2572
},
2573
"17": {
2574
"name": "punctuation.definition.string.end.markdown"
2575
}
2576
},
2577
"match": "(?x)\n \\s* # Leading whitespace\n (\\[)([^]]+?)(\\])(:) # Reference name\n [ \\t]* # Optional whitespace\n (?:(<)((?:\\\\[<>]|[^<>\\n])*)(>)|(\\S+?)) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n $\n",
2578
"name": "meta.link.reference.def.markdown"
2579
},
2580
"list_paragraph": {
2581
"begin": "(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)",
2582
"name": "meta.paragraph.markdown",
2583
"patterns": [
2584
{
2585
"include": "#inline"
2586
},
2587
{
2588
"include": "text.html.derivative"
2589
},
2590
{
2591
"include": "#heading-setext"
2592
}
2593
],
2594
"while": "(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)"
2595
},
2596
"lists": {
2597
"patterns": [
2598
{
2599
"begin": "(^|\\G)([ ]{0,3})([*+-])([ \\t])",
2600
"beginCaptures": {
2601
"3": {
2602
"name": "punctuation.definition.list.begin.markdown"
2603
}
2604
},
2605
"comment": "Currently does not support un-indented second lines.",
2606
"name": "markup.list.unnumbered.markdown",
2607
"patterns": [
2608
{
2609
"include": "#block"
2610
},
2611
{
2612
"include": "#list_paragraph"
2613
}
2614
],
2615
"while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"
2616
},
2617
{
2618
"begin": "(^|\\G)([ ]{0,3})([0-9]+[\\.\\)])([ \\t])",
2619
"beginCaptures": {
2620
"3": {
2621
"name": "punctuation.definition.list.begin.markdown"
2622
}
2623
},
2624
"name": "markup.list.numbered.markdown",
2625
"patterns": [
2626
{
2627
"include": "#block"
2628
},
2629
{
2630
"include": "#list_paragraph"
2631
}
2632
],
2633
"while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"
2634
}
2635
]
2636
},
2637
"paragraph": {
2638
"begin": "(^|\\G)[ ]{0,3}(?=[^ \\t\\n])",
2639
"name": "meta.paragraph.markdown",
2640
"patterns": [
2641
{
2642
"include": "#inline"
2643
},
2644
{
2645
"include": "text.html.derivative"
2646
},
2647
{
2648
"include": "#heading-setext"
2649
}
2650
],
2651
"while": "(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=[^ \\t\\n]))"
2652
},
2653
"raw_block": {
2654
"begin": "(^|\\G)([ ]{4}|\\t)",
2655
"name": "markup.raw.block.markdown",
2656
"while": "(^|\\G)([ ]{4}|\\t)"
2657
},
2658
"separator": {
2659
"match": "(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?",
2660
"name": "meta.separator.markdown"
2661
},
2662
"frontMatter": {
2663
"begin": "\\A(?=(-{3,}))",
2664
"end": "^ {,3}\\1-*[ \\t]*$|^[ \\t]*\\.{3}$",
2665
"applyEndPatternLast": 1,
2666
"endCaptures": {
2667
"0": {
2668
"name": "punctuation.definition.end.frontmatter"
2669
}
2670
},
2671
"patterns": [
2672
{
2673
"begin": "\\A(-{3,})(.*)$",
2674
"while": "^(?! {,3}\\1-*[ \\t]*$|[ \\t]*\\.{3}$)",
2675
"beginCaptures": {
2676
"1": {
2677
"name": "punctuation.definition.begin.frontmatter"
2678
},
2679
"2": {
2680
"name": "comment.frontmatter"
2681
}
2682
},
2683
"contentName": "meta.embedded.block.frontmatter",
2684
"patterns": [
2685
{
2686
"include": "source.yaml"
2687
}
2688
]
2689
}
2690
]
2691
},
2692
"table": {
2693
"name": "markup.table.markdown",
2694
"begin": "(^|\\G)(\\|)(?=[^|].+\\|\\s*$)",
2695
"beginCaptures": {
2696
"2": {
2697
"name": "punctuation.definition.table.markdown"
2698
}
2699
},
2700
"while": "(^|\\G)(?=\\|)",
2701
"patterns": [
2702
{
2703
"match": "\\|",
2704
"name": "punctuation.definition.table.markdown"
2705
},
2706
{
2707
"match": "(?<=\\|)\\s*(:?-+:?)\\s*(?=\\|)",
2708
"captures": {
2709
"1": {
2710
"name": "punctuation.separator.table.markdown"
2711
}
2712
}
2713
},
2714
{
2715
"match": "(?<=\\|)\\s*(?=\\S)((\\\\\\||[^|])+)(?<=\\S)\\s*(?=\\|)",
2716
"captures": {
2717
"1": {
2718
"patterns": [
2719
{
2720
"include": "#inline"
2721
}
2722
]
2723
}
2724
}
2725
}
2726
]
2727
},
2728
"inline": {
2729
"patterns": [
2730
{
2731
"include": "#ampersand"
2732
},
2733
{
2734
"include": "#bracket"
2735
},
2736
{
2737
"include": "#bold"
2738
},
2739
{
2740
"include": "#italic"
2741
},
2742
{
2743
"include": "#raw"
2744
},
2745
{
2746
"include": "#strikethrough"
2747
},
2748
{
2749
"include": "#escape"
2750
},
2751
{
2752
"include": "#image-inline"
2753
},
2754
{
2755
"include": "#image-ref"
2756
},
2757
{
2758
"include": "#link-email"
2759
},
2760
{
2761
"include": "#link-inet"
2762
},
2763
{
2764
"include": "#link-inline"
2765
},
2766
{
2767
"include": "#link-ref"
2768
},
2769
{
2770
"include": "#link-ref-literal"
2771
},
2772
{
2773
"include": "#link-ref-shortcut"
2774
}
2775
]
2776
},
2777
"ampersand": {
2778
"comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",
2779
"match": "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)",
2780
"name": "meta.other.valid-ampersand.markdown"
2781
},
2782
"bold": {
2783
"begin": "(?x) (?<open>(\\*\\*(?=\\w)|(?<!\\w)\\*\\*|(?<!\\w)\\b__))(?=\\S) (?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (?<square> # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g<square>*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n <?(.*?)>? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?<title>['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | (?!(?<=\\S)\\k<open>). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=__\\b|\\*\\*)\\k<open> # Close\n)\n",
2784
"captures": {
2785
"1": {
2786
"name": "punctuation.definition.bold.markdown"
2787
}
2788
},
2789
"end": "(?<=\\S)(\\1)",
2790
"name": "markup.bold.markdown",
2791
"patterns": [
2792
{
2793
"applyEndPatternLast": 1,
2794
"begin": "(?=<[^>]*?>)",
2795
"end": "(?<=>)",
2796
"patterns": [
2797
{
2798
"include": "text.html.derivative"
2799
}
2800
]
2801
},
2802
{
2803
"include": "#escape"
2804
},
2805
{
2806
"include": "#ampersand"
2807
},
2808
{
2809
"include": "#bracket"
2810
},
2811
{
2812
"include": "#raw"
2813
},
2814
{
2815
"include": "#bold"
2816
},
2817
{
2818
"include": "#italic"
2819
},
2820
{
2821
"include": "#image-inline"
2822
},
2823
{
2824
"include": "#link-inline"
2825
},
2826
{
2827
"include": "#link-inet"
2828
},
2829
{
2830
"include": "#link-email"
2831
},
2832
{
2833
"include": "#image-ref"
2834
},
2835
{
2836
"include": "#link-ref-literal"
2837
},
2838
{
2839
"include": "#link-ref"
2840
},
2841
{
2842
"include": "#link-ref-shortcut"
2843
},
2844
{
2845
"include": "#strikethrough"
2846
}
2847
]
2848
},
2849
"bracket": {
2850
"comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",
2851
"match": "<(?![a-zA-Z/?\\$!])",
2852
"name": "meta.other.valid-bracket.markdown"
2853
},
2854
"escape": {
2855
"match": "\\\\[-`*_#+.!(){}\\[\\]\\\\>]",
2856
"name": "constant.character.escape.markdown"
2857
},
2858
"image-inline": {
2859
"captures": {
2860
"1": {
2861
"name": "punctuation.definition.link.description.begin.markdown"
2862
},
2863
"2": {
2864
"name": "string.other.link.description.markdown"
2865
},
2866
"4": {
2867
"name": "punctuation.definition.link.description.end.markdown"
2868
},
2869
"5": {
2870
"name": "punctuation.definition.metadata.markdown"
2871
},
2872
"7": {
2873
"name": "punctuation.definition.link.markdown"
2874
},
2875
"8": {
2876
"name": "markup.underline.link.image.markdown"
2877
},
2878
"9": {
2879
"name": "punctuation.definition.link.markdown"
2880
},
2881
"10": {
2882
"name": "markup.underline.link.image.markdown"
2883
},
2884
"12": {
2885
"name": "string.other.link.description.title.markdown"
2886
},
2887
"13": {
2888
"name": "punctuation.definition.string.begin.markdown"
2889
},
2890
"14": {
2891
"name": "punctuation.definition.string.end.markdown"
2892
},
2893
"15": {
2894
"name": "string.other.link.description.title.markdown"
2895
},
2896
"16": {
2897
"name": "punctuation.definition.string.begin.markdown"
2898
},
2899
"17": {
2900
"name": "punctuation.definition.string.end.markdown"
2901
},
2902
"18": {
2903
"name": "string.other.link.description.title.markdown"
2904
},
2905
"19": {
2906
"name": "punctuation.definition.string.begin.markdown"
2907
},
2908
"20": {
2909
"name": "punctuation.definition.string.end.markdown"
2910
},
2911
"21": {
2912
"name": "punctuation.definition.metadata.markdown"
2913
}
2914
},
2915
"match": "(?x)\n (\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n # The url\n [ \\t]*\n (\n (<)((?:\\\\[<>]|[^<>\\n])*)(>)\n | ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)\n )\n [ \\t]*\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n",
2916
"name": "meta.image.inline.markdown"
2917
},
2918
"image-ref": {
2919
"captures": {
2920
"1": {
2921
"name": "punctuation.definition.link.description.begin.markdown"
2922
},
2923
"2": {
2924
"name": "string.other.link.description.markdown"
2925
},
2926
"4": {
2927
"name": "punctuation.definition.link.description.end.markdown"
2928
},
2929
"5": {
2930
"name": "punctuation.definition.constant.markdown"
2931
},
2932
"6": {
2933
"name": "constant.other.reference.link.markdown"
2934
},
2935
"7": {
2936
"name": "punctuation.definition.constant.markdown"
2937
}
2938
},
2939
"match": "(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",
2940
"name": "meta.image.reference.markdown"
2941
},
2942
"italic": {
2943
"begin": "(?x) (?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S) # Open\n (?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (?<square> # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g<square>*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whtiespace\n <?(.*?)>? # URL\n [ \\t]*+ # Optional whtiespace\n ( # Optional Title\n (?<title>['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | \\k<open>\\k<open> # Must be bold closer\n | (?!(?<=\\S)\\k<open>). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=_\\b|\\*)\\k<open> # Close\n )\n",
2944
"captures": {
2945
"1": {
2946
"name": "punctuation.definition.italic.markdown"
2947
}
2948
},
2949
"end": "(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",
2950
"name": "markup.italic.markdown",
2951
"patterns": [
2952
{
2953
"applyEndPatternLast": 1,
2954
"begin": "(?=<[^>]*?>)",
2955
"end": "(?<=>)",
2956
"patterns": [
2957
{
2958
"include": "text.html.derivative"
2959
}
2960
]
2961
},
2962
{
2963
"include": "#escape"
2964
},
2965
{
2966
"include": "#ampersand"
2967
},
2968
{
2969
"include": "#bracket"
2970
},
2971
{
2972
"include": "#raw"
2973
},
2974
{
2975
"include": "#bold"
2976
},
2977
{
2978
"include": "#image-inline"
2979
},
2980
{
2981
"include": "#link-inline"
2982
},
2983
{
2984
"include": "#link-inet"
2985
},
2986
{
2987
"include": "#link-email"
2988
},
2989
{
2990
"include": "#image-ref"
2991
},
2992
{
2993
"include": "#link-ref-literal"
2994
},
2995
{
2996
"include": "#link-ref"
2997
},
2998
{
2999
"include": "#link-ref-shortcut"
3000
},
3001
{
3002
"include": "#strikethrough"
3003
}
3004
]
3005
},
3006
"link-email": {
3007
"captures": {
3008
"1": {
3009
"name": "punctuation.definition.link.markdown"
3010
},
3011
"2": {
3012
"name": "markup.underline.link.markdown"
3013
},
3014
"4": {
3015
"name": "punctuation.definition.link.markdown"
3016
}
3017
},
3018
"match": "(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)",
3019
"name": "meta.link.email.lt-gt.markdown"
3020
},
3021
"link-inet": {
3022
"captures": {
3023
"1": {
3024
"name": "punctuation.definition.link.markdown"
3025
},
3026
"2": {
3027
"name": "markup.underline.link.markdown"
3028
},
3029
"3": {
3030
"name": "punctuation.definition.link.markdown"
3031
}
3032
},
3033
"match": "(<)((?:https?|ftp)://.*?)(>)",
3034
"name": "meta.link.inet.markdown"
3035
},
3036
"link-inline": {
3037
"captures": {
3038
"1": {
3039
"name": "punctuation.definition.link.title.begin.markdown"
3040
},
3041
"2": {
3042
"name": "string.other.link.title.markdown",
3043
"patterns": [
3044
{
3045
"include": "#raw"
3046
},
3047
{
3048
"include": "#bold"
3049
},
3050
{
3051
"include": "#italic"
3052
},
3053
{
3054
"include": "#strikethrough"
3055
},
3056
{
3057
"include": "#image-inline"
3058
}
3059
]
3060
},
3061
"4": {
3062
"name": "punctuation.definition.link.title.end.markdown"
3063
},
3064
"5": {
3065
"name": "punctuation.definition.metadata.markdown"
3066
},
3067
"7": {
3068
"name": "punctuation.definition.link.markdown"
3069
},
3070
"8": {
3071
"name": "markup.underline.link.markdown"
3072
},
3073
"9": {
3074
"name": "punctuation.definition.link.markdown"
3075
},
3076
"10": {
3077
"name": "markup.underline.link.markdown"
3078
},
3079
"12": {
3080
"name": "string.other.link.description.title.markdown"
3081
},
3082
"13": {
3083
"name": "punctuation.definition.string.begin.markdown"
3084
},
3085
"14": {
3086
"name": "punctuation.definition.string.end.markdown"
3087
},
3088
"15": {
3089
"name": "string.other.link.description.title.markdown"
3090
},
3091
"16": {
3092
"name": "punctuation.definition.string.begin.markdown"
3093
},
3094
"17": {
3095
"name": "punctuation.definition.string.end.markdown"
3096
},
3097
"18": {
3098
"name": "string.other.link.description.title.markdown"
3099
},
3100
"19": {
3101
"name": "punctuation.definition.string.begin.markdown"
3102
},
3103
"20": {
3104
"name": "punctuation.definition.string.end.markdown"
3105
},
3106
"21": {
3107
"name": "punctuation.definition.metadata.markdown"
3108
}
3109
},
3110
"match": "(?x)\n (\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n # The url\n [ \\t]*\n (\n (<)((?:\\\\[<>]|[^<>\\n])*)(>)\n | ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)\n )\n [ \\t]*\n # The title \n (?:\n ((\\()[^()]*(\\))) # Match title in parens…\n | ((\")[^\"]*(\")) # or in double quotes…\n | ((')[^']*(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n",
3111
"name": "meta.link.inline.markdown"
3112
},
3113
"link-ref": {
3114
"captures": {
3115
"1": {
3116
"name": "punctuation.definition.link.title.begin.markdown"
3117
},
3118
"2": {
3119
"name": "string.other.link.title.markdown",
3120
"patterns": [
3121
{
3122
"include": "#raw"
3123
},
3124
{
3125
"include": "#bold"
3126
},
3127
{
3128
"include": "#italic"
3129
},
3130
{
3131
"include": "#strikethrough"
3132
},
3133
{
3134
"include": "#image-inline"
3135
}
3136
]
3137
},
3138
"4": {
3139
"name": "punctuation.definition.link.title.end.markdown"
3140
},
3141
"5": {
3142
"name": "punctuation.definition.constant.begin.markdown"
3143
},
3144
"6": {
3145
"name": "constant.other.reference.link.markdown"
3146
},
3147
"7": {
3148
"name": "punctuation.definition.constant.end.markdown"
3149
}
3150
},
3151
"match": "(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])",
3152
"name": "meta.link.reference.markdown"
3153
},
3154
"link-ref-literal": {
3155
"captures": {
3156
"1": {
3157
"name": "punctuation.definition.link.title.begin.markdown"
3158
},
3159
"2": {
3160
"name": "string.other.link.title.markdown"
3161
},
3162
"4": {
3163
"name": "punctuation.definition.link.title.end.markdown"
3164
},
3165
"5": {
3166
"name": "punctuation.definition.constant.begin.markdown"
3167
},
3168
"6": {
3169
"name": "punctuation.definition.constant.end.markdown"
3170
}
3171
},
3172
"match": "(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])",
3173
"name": "meta.link.reference.literal.markdown"
3174
},
3175
"link-ref-shortcut": {
3176
"captures": {
3177
"1": {
3178
"name": "punctuation.definition.link.title.begin.markdown"
3179
},
3180
"2": {
3181
"name": "string.other.link.title.markdown"
3182
},
3183
"3": {
3184
"name": "punctuation.definition.link.title.end.markdown"
3185
}
3186
},
3187
"match": "(?<![\\]\\\\])(\\[)((?:[^\\s\\[\\]\\\\]|\\\\[\\[\\]])+?)((?<!\\\\)\\])",
3188
"name": "meta.link.reference.markdown"
3189
},
3190
"raw": {
3191
"captures": {
3192
"1": {
3193
"name": "punctuation.definition.raw.markdown"
3194
},
3195
"3": {
3196
"name": "punctuation.definition.raw.markdown"
3197
}
3198
},
3199
"match": "(`+)((?:[^`]|(?!(?<!`)\\1(?!`))`)*+)(\\1)",
3200
"name": "markup.inline.raw.string.markdown"
3201
},
3202
"strikethrough": {
3203
"captures": {
3204
"1": {
3205
"name": "punctuation.definition.strikethrough.markdown"
3206
},
3207
"2": {
3208
"patterns": [
3209
{
3210
"applyEndPatternLast": 1,
3211
"begin": "(?=<[^>]*?>)",
3212
"end": "(?<=>)",
3213
"patterns": [
3214
{
3215
"include": "text.html.derivative"
3216
}
3217
]
3218
},
3219
{
3220
"include": "#escape"
3221
},
3222
{
3223
"include": "#ampersand"
3224
},
3225
{
3226
"include": "#bracket"
3227
},
3228
{
3229
"include": "#raw"
3230
},
3231
{
3232
"include": "#bold"
3233
},
3234
{
3235
"include": "#italic"
3236
},
3237
{
3238
"include": "#image-inline"
3239
},
3240
{
3241
"include": "#link-inline"
3242
},
3243
{
3244
"include": "#link-inet"
3245
},
3246
{
3247
"include": "#link-email"
3248
},
3249
{
3250
"include": "#image-ref"
3251
},
3252
{
3253
"include": "#link-ref-literal"
3254
},
3255
{
3256
"include": "#link-ref"
3257
},
3258
{
3259
"include": "#link-ref-shortcut"
3260
}
3261
]
3262
},
3263
"3": {
3264
"name": "punctuation.definition.strikethrough.markdown"
3265
}
3266
},
3267
"match": "(?<!\\\\)(~{2,})(?!(?<=\\w~~)_)((?:[^~]|(?!(?<![~\\\\])\\1(?!~))~)*+)(\\1)(?!(?<=_\\1)\\w)",
3268
"name": "markup.strikethrough.markdown"
3269
}
3270
}
3271
}
3272