PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.27.4
Code Block Pro – Beautiful Syntax Highlighting v1.27.4
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
code-block-pro / build / shiki / languages / markdown.tmLanguage.json

markdown.tmLanguage.json in Code Block Pro – Beautiful Syntax Highlighting 1.27.4, at build/shiki/languages/markdown.tmLanguage.json

3,072 lines 86.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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/0b36cbbf917fb0188e1a1bafc8287c7abf8b0b37",
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_js": {
963 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\{\\.js.+?\\})((\\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.javascript",
987 "patterns": [
988 {
989 "include": "source.js"
990 }
991 ]
992 }
993 ]
994 },
995 "fenced_code_block_js_regexp": {
996 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\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.js_regexp",
1020 "patterns": [
1021 {
1022 "include": "source.js.regexp"
1023 }
1024 ]
1025 }
1026 ]
1027 },
1028 "fenced_code_block_json": {
1029 "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+|:|,|\\{|\\?)[^`]*)?$)",
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.json",
1053 "patterns": [
1054 {
1055 "include": "source.json"
1056 }
1057 ]
1058 }
1059 ]
1060 },
1061 "fenced_code_block_jsonc": {
1062 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\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.jsonc",
1086 "patterns": [
1087 {
1088 "include": "source.json.comments"
1089 }
1090 ]
1091 }
1092 ]
1093 },
1094 "fenced_code_block_less": {
1095 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\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.less",
1119 "patterns": [
1120 {
1121 "include": "source.css.less"
1122 }
1123 ]
1124 }
1125 ]
1126 },
1127 "fenced_code_block_objc": {
1128 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\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.objc",
1152 "patterns": [
1153 {
1154 "include": "source.objc"
1155 }
1156 ]
1157 }
1158 ]
1159 },
1160 "fenced_code_block_swift": {
1161 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\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.swift",
1185 "patterns": [
1186 {
1187 "include": "source.swift"
1188 }
1189 ]
1190 }
1191 ]
1192 },
1193 "fenced_code_block_scss": {
1194 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\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.scss",
1218 "patterns": [
1219 {
1220 "include": "source.css.scss"
1221 }
1222 ]
1223 }
1224 ]
1225 },
1226 "fenced_code_block_perl6": {
1227 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\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.perl6",
1251 "patterns": [
1252 {
1253 "include": "source.perl.6"
1254 }
1255 ]
1256 }
1257 ]
1258 },
1259 "fenced_code_block_powershell": {
1260 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1)((\\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.powershell",
1284 "patterns": [
1285 {
1286 "include": "source.powershell"
1287 }
1288 ]
1289 }
1290 ]
1291 },
1292 "fenced_code_block_python": {
1293 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\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.python",
1317 "patterns": [
1318 {
1319 "include": "source.python"
1320 }
1321 ]
1322 }
1323 ]
1324 },
1325 "fenced_code_block_julia": {
1326 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\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.julia",
1350 "patterns": [
1351 {
1352 "include": "source.julia"
1353 }
1354 ]
1355 }
1356 ]
1357 },
1358 "fenced_code_block_regexp_python": {
1359 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\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.regexp_python",
1383 "patterns": [
1384 {
1385 "include": "source.regexp.python"
1386 }
1387 ]
1388 }
1389 ]
1390 },
1391 "fenced_code_block_rust": {
1392 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\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.rust",
1416 "patterns": [
1417 {
1418 "include": "source.rust"
1419 }
1420 ]
1421 }
1422 ]
1423 },
1424 "fenced_code_block_scala": {
1425 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\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.scala",
1449 "patterns": [
1450 {
1451 "include": "source.scala"
1452 }
1453 ]
1454 }
1455 ]
1456 },
1457 "fenced_code_block_shell": {
1458 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\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.shellscript",
1482 "patterns": [
1483 {
1484 "include": "source.shell"
1485 }
1486 ]
1487 }
1488 ]
1489 },
1490 "fenced_code_block_ts": {
1491 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\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.typescript",
1515 "patterns": [
1516 {
1517 "include": "source.ts"
1518 }
1519 ]
1520 }
1521 ]
1522 },
1523 "fenced_code_block_tsx": {
1524 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\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.typescriptreact",
1548 "patterns": [
1549 {
1550 "include": "source.tsx"
1551 }
1552 ]
1553 }
1554 ]
1555 },
1556 "fenced_code_block_csharp": {
1557 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\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.csharp",
1581 "patterns": [
1582 {
1583 "include": "source.cs"
1584 }
1585 ]
1586 }
1587 ]
1588 },
1589 "fenced_code_block_fsharp": {
1590 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\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.fsharp",
1614 "patterns": [
1615 {
1616 "include": "source.fsharp"
1617 }
1618 ]
1619 }
1620 ]
1621 },
1622 "fenced_code_block_dart": {
1623 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\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.dart",
1647 "patterns": [
1648 {
1649 "include": "source.dart"
1650 }
1651 ]
1652 }
1653 ]
1654 },
1655 "fenced_code_block_handlebars": {
1656 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\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.handlebars",
1680 "patterns": [
1681 {
1682 "include": "text.html.handlebars"
1683 }
1684 ]
1685 }
1686 ]
1687 },
1688 "fenced_code_block_markdown": {
1689 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\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.markdown",
1713 "patterns": [
1714 {
1715 "include": "text.html.markdown"
1716 }
1717 ]
1718 }
1719 ]
1720 },
1721 "fenced_code_block_log": {
1722 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\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.log",
1746 "patterns": [
1747 {
1748 "include": "text.log"
1749 }
1750 ]
1751 }
1752 ]
1753 },
1754 "fenced_code_block_erlang": {
1755 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\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.erlang",
1779 "patterns": [
1780 {
1781 "include": "source.erlang"
1782 }
1783 ]
1784 }
1785 ]
1786 },
1787 "fenced_code_block_elixir": {
1788 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\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.elixir",
1812 "patterns": [
1813 {
1814 "include": "source.elixir"
1815 }
1816 ]
1817 }
1818 ]
1819 },
1820 "fenced_code_block_latex": {
1821 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\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.latex",
1845 "patterns": [
1846 {
1847 "include": "text.tex.latex"
1848 }
1849 ]
1850 }
1851 ]
1852 },
1853 "fenced_code_block_bibtex": {
1854 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\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.bibtex",
1878 "patterns": [
1879 {
1880 "include": "text.bibtex"
1881 }
1882 ]
1883 }
1884 ]
1885 },
1886 "fenced_code_block_twig": {
1887 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(twig)((\\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.twig",
1911 "patterns": [
1912 {
1913 "include": "source.twig"
1914 }
1915 ]
1916 }
1917 ]
1918 },
1919 "fenced_code_block": {
1920 "patterns": [
1921 {
1922 "include": "#fenced_code_block_css"
1923 },
1924 {
1925 "include": "#fenced_code_block_basic"
1926 },
1927 {
1928 "include": "#fenced_code_block_ini"
1929 },
1930 {
1931 "include": "#fenced_code_block_java"
1932 },
1933 {
1934 "include": "#fenced_code_block_lua"
1935 },
1936 {
1937 "include": "#fenced_code_block_makefile"
1938 },
1939 {
1940 "include": "#fenced_code_block_perl"
1941 },
1942 {
1943 "include": "#fenced_code_block_r"
1944 },
1945 {
1946 "include": "#fenced_code_block_ruby"
1947 },
1948 {
1949 "include": "#fenced_code_block_php"
1950 },
1951 {
1952 "include": "#fenced_code_block_sql"
1953 },
1954 {
1955 "include": "#fenced_code_block_vs_net"
1956 },
1957 {
1958 "include": "#fenced_code_block_xml"
1959 },
1960 {
1961 "include": "#fenced_code_block_xsl"
1962 },
1963 {
1964 "include": "#fenced_code_block_yaml"
1965 },
1966 {
1967 "include": "#fenced_code_block_dosbatch"
1968 },
1969 {
1970 "include": "#fenced_code_block_clojure"
1971 },
1972 {
1973 "include": "#fenced_code_block_coffee"
1974 },
1975 {
1976 "include": "#fenced_code_block_c"
1977 },
1978 {
1979 "include": "#fenced_code_block_cpp"
1980 },
1981 {
1982 "include": "#fenced_code_block_diff"
1983 },
1984 {
1985 "include": "#fenced_code_block_dockerfile"
1986 },
1987 {
1988 "include": "#fenced_code_block_git_commit"
1989 },
1990 {
1991 "include": "#fenced_code_block_git_rebase"
1992 },
1993 {
1994 "include": "#fenced_code_block_go"
1995 },
1996 {
1997 "include": "#fenced_code_block_groovy"
1998 },
1999 {
2000 "include": "#fenced_code_block_pug"
2001 },
2002 {
2003 "include": "#fenced_code_block_js"
2004 },
2005 {
2006 "include": "#fenced_code_block_js_regexp"
2007 },
2008 {
2009 "include": "#fenced_code_block_json"
2010 },
2011 {
2012 "include": "#fenced_code_block_jsonc"
2013 },
2014 {
2015 "include": "#fenced_code_block_less"
2016 },
2017 {
2018 "include": "#fenced_code_block_objc"
2019 },
2020 {
2021 "include": "#fenced_code_block_swift"
2022 },
2023 {
2024 "include": "#fenced_code_block_scss"
2025 },
2026 {
2027 "include": "#fenced_code_block_perl6"
2028 },
2029 {
2030 "include": "#fenced_code_block_powershell"
2031 },
2032 {
2033 "include": "#fenced_code_block_python"
2034 },
2035 {
2036 "include": "#fenced_code_block_julia"
2037 },
2038 {
2039 "include": "#fenced_code_block_regexp_python"
2040 },
2041 {
2042 "include": "#fenced_code_block_rust"
2043 },
2044 {
2045 "include": "#fenced_code_block_scala"
2046 },
2047 {
2048 "include": "#fenced_code_block_shell"
2049 },
2050 {
2051 "include": "#fenced_code_block_ts"
2052 },
2053 {
2054 "include": "#fenced_code_block_tsx"
2055 },
2056 {
2057 "include": "#fenced_code_block_csharp"
2058 },
2059 {
2060 "include": "#fenced_code_block_fsharp"
2061 },
2062 {
2063 "include": "#fenced_code_block_dart"
2064 },
2065 {
2066 "include": "#fenced_code_block_handlebars"
2067 },
2068 {
2069 "include": "#fenced_code_block_markdown"
2070 },
2071 {
2072 "include": "#fenced_code_block_log"
2073 },
2074 {
2075 "include": "#fenced_code_block_erlang"
2076 },
2077 {
2078 "include": "#fenced_code_block_elixir"
2079 },
2080 {
2081 "include": "#fenced_code_block_latex"
2082 },
2083 {
2084 "include": "#fenced_code_block_bibtex"
2085 },
2086 {
2087 "include": "#fenced_code_block_twig"
2088 },
2089 {
2090 "include": "#fenced_code_block_unknown"
2091 }
2092 ]
2093 },
2094 "fenced_code_block_unknown": {
2095 "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`]*)?$)",
2096 "beginCaptures": {
2097 "3": {
2098 "name": "punctuation.definition.markdown"
2099 },
2100 "4": {
2101 "name": "fenced_code.block.language"
2102 }
2103 },
2104 "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
2105 "endCaptures": {
2106 "3": {
2107 "name": "punctuation.definition.markdown"
2108 }
2109 },
2110 "name": "markup.fenced_code.block.markdown"
2111 },
2112 "heading": {
2113 "match": "(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$",
2114 "captures": {
2115 "1": {
2116 "patterns": [
2117 {
2118 "match": "(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$",
2119 "name": "heading.6.markdown",
2120 "captures": {
2121 "1": {
2122 "name": "punctuation.definition.heading.markdown"
2123 },
2124 "2": {
2125 "name": "entity.name.section.markdown",
2126 "patterns": [
2127 {
2128 "include": "#inline"
2129 },
2130 {
2131 "include": "text.html.derivative"
2132 }
2133 ]
2134 },
2135 "3": {
2136 "name": "punctuation.definition.heading.markdown"
2137 }
2138 }
2139 },
2140 {
2141 "match": "(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$",
2142 "name": "heading.5.markdown",
2143 "captures": {
2144 "1": {
2145 "name": "punctuation.definition.heading.markdown"
2146 },
2147 "2": {
2148 "name": "entity.name.section.markdown",
2149 "patterns": [
2150 {
2151 "include": "#inline"
2152 },
2153 {
2154 "include": "text.html.derivative"
2155 }
2156 ]
2157 },
2158 "3": {
2159 "name": "punctuation.definition.heading.markdown"
2160 }
2161 }
2162 },
2163 {
2164 "match": "(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$",
2165 "name": "heading.4.markdown",
2166 "captures": {
2167 "1": {
2168 "name": "punctuation.definition.heading.markdown"
2169 },
2170 "2": {
2171 "name": "entity.name.section.markdown",
2172 "patterns": [
2173 {
2174 "include": "#inline"
2175 },
2176 {
2177 "include": "text.html.derivative"
2178 }
2179 ]
2180 },
2181 "3": {
2182 "name": "punctuation.definition.heading.markdown"
2183 }
2184 }
2185 },
2186 {
2187 "match": "(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$",
2188 "name": "heading.3.markdown",
2189 "captures": {
2190 "1": {
2191 "name": "punctuation.definition.heading.markdown"
2192 },
2193 "2": {
2194 "name": "entity.name.section.markdown",
2195 "patterns": [
2196 {
2197 "include": "#inline"
2198 },
2199 {
2200 "include": "text.html.derivative"
2201 }
2202 ]
2203 },
2204 "3": {
2205 "name": "punctuation.definition.heading.markdown"
2206 }
2207 }
2208 },
2209 {
2210 "match": "(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$",
2211 "name": "heading.2.markdown",
2212 "captures": {
2213 "1": {
2214 "name": "punctuation.definition.heading.markdown"
2215 },
2216 "2": {
2217 "name": "entity.name.section.markdown",
2218 "patterns": [
2219 {
2220 "include": "#inline"
2221 },
2222 {
2223 "include": "text.html.derivative"
2224 }
2225 ]
2226 },
2227 "3": {
2228 "name": "punctuation.definition.heading.markdown"
2229 }
2230 }
2231 },
2232 {
2233 "match": "(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$",
2234 "name": "heading.1.markdown",
2235 "captures": {
2236 "1": {
2237 "name": "punctuation.definition.heading.markdown"
2238 },
2239 "2": {
2240 "name": "entity.name.section.markdown",
2241 "patterns": [
2242 {
2243 "include": "#inline"
2244 },
2245 {
2246 "include": "text.html.derivative"
2247 }
2248 ]
2249 },
2250 "3": {
2251 "name": "punctuation.definition.heading.markdown"
2252 }
2253 }
2254 }
2255 ]
2256 }
2257 },
2258 "name": "markup.heading.markdown"
2259 },
2260 "heading-setext": {
2261 "patterns": [
2262 {
2263 "match": "^(={3,})(?=[ \\t]*$\\n?)",
2264 "name": "markup.heading.setext.1.markdown"
2265 },
2266 {
2267 "match": "^(-{3,})(?=[ \\t]*$\\n?)",
2268 "name": "markup.heading.setext.2.markdown"
2269 }
2270 ]
2271 },
2272 "html": {
2273 "patterns": [
2274 {
2275 "begin": "(^|\\G)\\s*(<!--)",
2276 "captures": {
2277 "1": {
2278 "name": "punctuation.definition.comment.html"
2279 },
2280 "2": {
2281 "name": "punctuation.definition.comment.html"
2282 }
2283 },
2284 "end": "(-->)",
2285 "name": "comment.block.html"
2286 },
2287 {
2288 "begin": "(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?</(script|style|pre)>))",
2289 "end": "(?i)(.*)((</)(script|style|pre)(>))",
2290 "endCaptures": {
2291 "1": {
2292 "patterns": [
2293 {
2294 "include": "text.html.derivative"
2295 }
2296 ]
2297 },
2298 "2": {
2299 "name": "meta.tag.structure.$4.end.html"
2300 },
2301 "3": {
2302 "name": "punctuation.definition.tag.begin.html"
2303 },
2304 "4": {
2305 "name": "entity.name.tag.html"
2306 },
2307 "5": {
2308 "name": "punctuation.definition.tag.end.html"
2309 }
2310 },
2311 "patterns": [
2312 {
2313 "begin": "(\\s*|$)",
2314 "patterns": [
2315 {
2316 "include": "text.html.derivative"
2317 }
2318 ],
2319 "while": "(?i)^(?!.*</(script|style|pre)>)"
2320 }
2321 ]
2322 },
2323 {
2324 "begin": "(?i)(^|\\G)\\s*(?=</?[a-zA-Z]+[^\\s/&gt;]*(\\s|$|/?>))",
2325 "patterns": [
2326 {
2327 "include": "text.html.derivative"
2328 }
2329 ],
2330 "while": "^(?!\\s*$)"
2331 },
2332 {
2333 "begin": "(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|</[a-zA-Z0-9\\-]>)\\s*$)",
2334 "patterns": [
2335 {
2336 "include": "text.html.derivative"
2337 }
2338 ],
2339 "while": "^(?!\\s*$)"
2340 }
2341 ]
2342 },
2343 "link-def": {
2344 "captures": {
2345 "1": {
2346 "name": "punctuation.definition.constant.markdown"
2347 },
2348 "2": {
2349 "name": "constant.other.reference.link.markdown"
2350 },
2351 "3": {
2352 "name": "punctuation.definition.constant.markdown"
2353 },
2354 "4": {
2355 "name": "punctuation.separator.key-value.markdown"
2356 },
2357 "5": {
2358 "name": "punctuation.definition.link.markdown"
2359 },
2360 "6": {
2361 "name": "markup.underline.link.markdown"
2362 },
2363 "7": {
2364 "name": "punctuation.definition.link.markdown"
2365 },
2366 "8": {
2367 "name": "markup.underline.link.markdown"
2368 },
2369 "9": {
2370 "name": "string.other.link.description.title.markdown"
2371 },
2372 "10": {
2373 "name": "punctuation.definition.string.begin.markdown"
2374 },
2375 "11": {
2376 "name": "punctuation.definition.string.end.markdown"
2377 },
2378 "12": {
2379 "name": "string.other.link.description.title.markdown"
2380 },
2381 "13": {
2382 "name": "punctuation.definition.string.begin.markdown"
2383 },
2384 "14": {
2385 "name": "punctuation.definition.string.end.markdown"
2386 },
2387 "15": {
2388 "name": "string.other.link.description.title.markdown"
2389 },
2390 "16": {
2391 "name": "punctuation.definition.string.begin.markdown"
2392 },
2393 "17": {
2394 "name": "punctuation.definition.string.end.markdown"
2395 }
2396 },
2397 "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",
2398 "name": "meta.link.reference.def.markdown"
2399 },
2400 "list_paragraph": {
2401 "begin": "(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)",
2402 "name": "meta.paragraph.markdown",
2403 "patterns": [
2404 {
2405 "include": "#inline"
2406 },
2407 {
2408 "include": "text.html.derivative"
2409 },
2410 {
2411 "include": "#heading-setext"
2412 }
2413 ],
2414 "while": "(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)"
2415 },
2416 "lists": {
2417 "patterns": [
2418 {
2419 "begin": "(^|\\G)([ ]{0,3})([*+-])([ \\t])",
2420 "beginCaptures": {
2421 "3": {
2422 "name": "punctuation.definition.list.begin.markdown"
2423 }
2424 },
2425 "comment": "Currently does not support un-indented second lines.",
2426 "name": "markup.list.unnumbered.markdown",
2427 "patterns": [
2428 {
2429 "include": "#block"
2430 },
2431 {
2432 "include": "#list_paragraph"
2433 }
2434 ],
2435 "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"
2436 },
2437 {
2438 "begin": "(^|\\G)([ ]{0,3})([0-9]+[\\.\\)])([ \\t])",
2439 "beginCaptures": {
2440 "3": {
2441 "name": "punctuation.definition.list.begin.markdown"
2442 }
2443 },
2444 "name": "markup.list.numbered.markdown",
2445 "patterns": [
2446 {
2447 "include": "#block"
2448 },
2449 {
2450 "include": "#list_paragraph"
2451 }
2452 ],
2453 "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"
2454 }
2455 ]
2456 },
2457 "paragraph": {
2458 "begin": "(^|\\G)[ ]{0,3}(?=[^ \\t\\n])",
2459 "name": "meta.paragraph.markdown",
2460 "patterns": [
2461 {
2462 "include": "#inline"
2463 },
2464 {
2465 "include": "text.html.derivative"
2466 },
2467 {
2468 "include": "#heading-setext"
2469 }
2470 ],
2471 "while": "(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=[^ \\t\\n]))"
2472 },
2473 "raw_block": {
2474 "begin": "(^|\\G)([ ]{4}|\\t)",
2475 "name": "markup.raw.block.markdown",
2476 "while": "(^|\\G)([ ]{4}|\\t)"
2477 },
2478 "separator": {
2479 "match": "(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?",
2480 "name": "meta.separator.markdown"
2481 },
2482 "frontMatter": {
2483 "begin": "\\A-{3}\\s*$",
2484 "contentName": "meta.embedded.block.frontmatter",
2485 "patterns": [
2486 {
2487 "include": "source.yaml"
2488 }
2489 ],
2490 "end": "(^|\\G)-{3}|\\.{3}\\s*$"
2491 },
2492 "table": {
2493 "name": "markup.table.markdown",
2494 "begin": "(^|\\G)(\\|)(?=[^|].+\\|\\s*$)",
2495 "beginCaptures": {
2496 "2": {
2497 "name": "punctuation.definition.table.markdown"
2498 }
2499 },
2500 "while": "(^|\\G)(?=\\|)",
2501 "patterns": [
2502 {
2503 "match": "\\|",
2504 "name": "punctuation.definition.table.markdown"
2505 },
2506 {
2507 "match": "(?<=\\|)\\s*(:?-+:?)\\s*(?=\\|)",
2508 "captures": {
2509 "1": {
2510 "name": "punctuation.separator.table.markdown"
2511 }
2512 }
2513 },
2514 {
2515 "match": "(?<=\\|)\\s*(?=\\S)((\\\\\\||[^|])+)(?<=\\S)\\s*(?=\\|)",
2516 "captures": {
2517 "1": {
2518 "patterns": [
2519 {
2520 "include": "#inline"
2521 }
2522 ]
2523 }
2524 }
2525 }
2526 ]
2527 },
2528 "inline": {
2529 "patterns": [
2530 {
2531 "include": "#ampersand"
2532 },
2533 {
2534 "include": "#bracket"
2535 },
2536 {
2537 "include": "#bold"
2538 },
2539 {
2540 "include": "#italic"
2541 },
2542 {
2543 "include": "#raw"
2544 },
2545 {
2546 "include": "#strikethrough"
2547 },
2548 {
2549 "include": "#escape"
2550 },
2551 {
2552 "include": "#image-inline"
2553 },
2554 {
2555 "include": "#image-ref"
2556 },
2557 {
2558 "include": "#link-email"
2559 },
2560 {
2561 "include": "#link-inet"
2562 },
2563 {
2564 "include": "#link-inline"
2565 },
2566 {
2567 "include": "#link-ref"
2568 },
2569 {
2570 "include": "#link-ref-literal"
2571 },
2572 {
2573 "include": "#link-ref-shortcut"
2574 }
2575 ]
2576 },
2577 "ampersand": {
2578 "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",
2579 "match": "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)",
2580 "name": "meta.other.valid-ampersand.markdown"
2581 },
2582 "bold": {
2583 "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",
2584 "captures": {
2585 "1": {
2586 "name": "punctuation.definition.bold.markdown"
2587 }
2588 },
2589 "end": "(?<=\\S)(\\1)",
2590 "name": "markup.bold.markdown",
2591 "patterns": [
2592 {
2593 "applyEndPatternLast": 1,
2594 "begin": "(?=<[^>]*?>)",
2595 "end": "(?<=>)",
2596 "patterns": [
2597 {
2598 "include": "text.html.derivative"
2599 }
2600 ]
2601 },
2602 {
2603 "include": "#escape"
2604 },
2605 {
2606 "include": "#ampersand"
2607 },
2608 {
2609 "include": "#bracket"
2610 },
2611 {
2612 "include": "#raw"
2613 },
2614 {
2615 "include": "#bold"
2616 },
2617 {
2618 "include": "#italic"
2619 },
2620 {
2621 "include": "#image-inline"
2622 },
2623 {
2624 "include": "#link-inline"
2625 },
2626 {
2627 "include": "#link-inet"
2628 },
2629 {
2630 "include": "#link-email"
2631 },
2632 {
2633 "include": "#image-ref"
2634 },
2635 {
2636 "include": "#link-ref-literal"
2637 },
2638 {
2639 "include": "#link-ref"
2640 },
2641 {
2642 "include": "#link-ref-shortcut"
2643 },
2644 {
2645 "include": "#strikethrough"
2646 }
2647 ]
2648 },
2649 "bracket": {
2650 "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",
2651 "match": "<(?![a-zA-Z/?\\$!])",
2652 "name": "meta.other.valid-bracket.markdown"
2653 },
2654 "escape": {
2655 "match": "\\\\[-`*_#+.!(){}\\[\\]\\\\>]",
2656 "name": "constant.character.escape.markdown"
2657 },
2658 "image-inline": {
2659 "captures": {
2660 "1": {
2661 "name": "punctuation.definition.link.description.begin.markdown"
2662 },
2663 "2": {
2664 "name": "string.other.link.description.markdown"
2665 },
2666 "4": {
2667 "name": "punctuation.definition.link.description.end.markdown"
2668 },
2669 "5": {
2670 "name": "punctuation.definition.metadata.markdown"
2671 },
2672 "7": {
2673 "name": "punctuation.definition.link.markdown"
2674 },
2675 "8": {
2676 "name": "markup.underline.link.image.markdown"
2677 },
2678 "9": {
2679 "name": "punctuation.definition.link.markdown"
2680 },
2681 "10": {
2682 "name": "markup.underline.link.image.markdown"
2683 },
2684 "12": {
2685 "name": "string.other.link.description.title.markdown"
2686 },
2687 "13": {
2688 "name": "punctuation.definition.string.begin.markdown"
2689 },
2690 "14": {
2691 "name": "punctuation.definition.string.end.markdown"
2692 },
2693 "15": {
2694 "name": "string.other.link.description.title.markdown"
2695 },
2696 "16": {
2697 "name": "punctuation.definition.string.begin.markdown"
2698 },
2699 "17": {
2700 "name": "punctuation.definition.string.end.markdown"
2701 },
2702 "18": {
2703 "name": "string.other.link.description.title.markdown"
2704 },
2705 "19": {
2706 "name": "punctuation.definition.string.begin.markdown"
2707 },
2708 "20": {
2709 "name": "punctuation.definition.string.end.markdown"
2710 },
2711 "21": {
2712 "name": "punctuation.definition.metadata.markdown"
2713 }
2714 },
2715 "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",
2716 "name": "meta.image.inline.markdown"
2717 },
2718 "image-ref": {
2719 "captures": {
2720 "1": {
2721 "name": "punctuation.definition.link.description.begin.markdown"
2722 },
2723 "2": {
2724 "name": "string.other.link.description.markdown"
2725 },
2726 "4": {
2727 "name": "punctuation.definition.link.description.end.markdown"
2728 },
2729 "5": {
2730 "name": "punctuation.definition.constant.markdown"
2731 },
2732 "6": {
2733 "name": "constant.other.reference.link.markdown"
2734 },
2735 "7": {
2736 "name": "punctuation.definition.constant.markdown"
2737 }
2738 },
2739 "match": "(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",
2740 "name": "meta.image.reference.markdown"
2741 },
2742 "italic": {
2743 "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",
2744 "captures": {
2745 "1": {
2746 "name": "punctuation.definition.italic.markdown"
2747 }
2748 },
2749 "end": "(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",
2750 "name": "markup.italic.markdown",
2751 "patterns": [
2752 {
2753 "applyEndPatternLast": 1,
2754 "begin": "(?=<[^>]*?>)",
2755 "end": "(?<=>)",
2756 "patterns": [
2757 {
2758 "include": "text.html.derivative"
2759 }
2760 ]
2761 },
2762 {
2763 "include": "#escape"
2764 },
2765 {
2766 "include": "#ampersand"
2767 },
2768 {
2769 "include": "#bracket"
2770 },
2771 {
2772 "include": "#raw"
2773 },
2774 {
2775 "include": "#bold"
2776 },
2777 {
2778 "include": "#image-inline"
2779 },
2780 {
2781 "include": "#link-inline"
2782 },
2783 {
2784 "include": "#link-inet"
2785 },
2786 {
2787 "include": "#link-email"
2788 },
2789 {
2790 "include": "#image-ref"
2791 },
2792 {
2793 "include": "#link-ref-literal"
2794 },
2795 {
2796 "include": "#link-ref"
2797 },
2798 {
2799 "include": "#link-ref-shortcut"
2800 },
2801 {
2802 "include": "#strikethrough"
2803 }
2804 ]
2805 },
2806 "link-email": {
2807 "captures": {
2808 "1": {
2809 "name": "punctuation.definition.link.markdown"
2810 },
2811 "2": {
2812 "name": "markup.underline.link.markdown"
2813 },
2814 "4": {
2815 "name": "punctuation.definition.link.markdown"
2816 }
2817 },
2818 "match": "(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)",
2819 "name": "meta.link.email.lt-gt.markdown"
2820 },
2821 "link-inet": {
2822 "captures": {
2823 "1": {
2824 "name": "punctuation.definition.link.markdown"
2825 },
2826 "2": {
2827 "name": "markup.underline.link.markdown"
2828 },
2829 "3": {
2830 "name": "punctuation.definition.link.markdown"
2831 }
2832 },
2833 "match": "(<)((?:https?|ftp)://.*?)(>)",
2834 "name": "meta.link.inet.markdown"
2835 },
2836 "link-inline": {
2837 "captures": {
2838 "1": {
2839 "name": "punctuation.definition.link.title.begin.markdown"
2840 },
2841 "2": {
2842 "name": "string.other.link.title.markdown",
2843 "patterns": [
2844 {
2845 "include": "#raw"
2846 },
2847 {
2848 "include": "#bold"
2849 },
2850 {
2851 "include": "#italic"
2852 },
2853 {
2854 "include": "#strikethrough"
2855 },
2856 {
2857 "include": "#image-inline"
2858 }
2859 ]
2860 },
2861 "4": {
2862 "name": "punctuation.definition.link.title.end.markdown"
2863 },
2864 "5": {
2865 "name": "punctuation.definition.metadata.markdown"
2866 },
2867 "7": {
2868 "name": "punctuation.definition.link.markdown"
2869 },
2870 "8": {
2871 "name": "markup.underline.link.markdown"
2872 },
2873 "9": {
2874 "name": "punctuation.definition.link.markdown"
2875 },
2876 "10": {
2877 "name": "markup.underline.link.markdown"
2878 },
2879 "12": {
2880 "name": "string.other.link.description.title.markdown"
2881 },
2882 "13": {
2883 "name": "punctuation.definition.string.begin.markdown"
2884 },
2885 "14": {
2886 "name": "punctuation.definition.string.end.markdown"
2887 },
2888 "15": {
2889 "name": "string.other.link.description.title.markdown"
2890 },
2891 "16": {
2892 "name": "punctuation.definition.string.begin.markdown"
2893 },
2894 "17": {
2895 "name": "punctuation.definition.string.end.markdown"
2896 },
2897 "18": {
2898 "name": "string.other.link.description.title.markdown"
2899 },
2900 "19": {
2901 "name": "punctuation.definition.string.begin.markdown"
2902 },
2903 "20": {
2904 "name": "punctuation.definition.string.end.markdown"
2905 },
2906 "21": {
2907 "name": "punctuation.definition.metadata.markdown"
2908 }
2909 },
2910 "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",
2911 "name": "meta.link.inline.markdown"
2912 },
2913 "link-ref": {
2914 "captures": {
2915 "1": {
2916 "name": "punctuation.definition.link.title.begin.markdown"
2917 },
2918 "2": {
2919 "name": "string.other.link.title.markdown",
2920 "patterns": [
2921 {
2922 "include": "#raw"
2923 },
2924 {
2925 "include": "#bold"
2926 },
2927 {
2928 "include": "#italic"
2929 },
2930 {
2931 "include": "#strikethrough"
2932 },
2933 {
2934 "include": "#image-inline"
2935 }
2936 ]
2937 },
2938 "4": {
2939 "name": "punctuation.definition.link.title.end.markdown"
2940 },
2941 "5": {
2942 "name": "punctuation.definition.constant.begin.markdown"
2943 },
2944 "6": {
2945 "name": "constant.other.reference.link.markdown"
2946 },
2947 "7": {
2948 "name": "punctuation.definition.constant.end.markdown"
2949 }
2950 },
2951 "match": "(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])",
2952 "name": "meta.link.reference.markdown"
2953 },
2954 "link-ref-literal": {
2955 "captures": {
2956 "1": {
2957 "name": "punctuation.definition.link.title.begin.markdown"
2958 },
2959 "2": {
2960 "name": "string.other.link.title.markdown"
2961 },
2962 "4": {
2963 "name": "punctuation.definition.link.title.end.markdown"
2964 },
2965 "5": {
2966 "name": "punctuation.definition.constant.begin.markdown"
2967 },
2968 "6": {
2969 "name": "punctuation.definition.constant.end.markdown"
2970 }
2971 },
2972 "match": "(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])",
2973 "name": "meta.link.reference.literal.markdown"
2974 },
2975 "link-ref-shortcut": {
2976 "captures": {
2977 "1": {
2978 "name": "punctuation.definition.link.title.begin.markdown"
2979 },
2980 "2": {
2981 "name": "string.other.link.title.markdown"
2982 },
2983 "3": {
2984 "name": "punctuation.definition.link.title.end.markdown"
2985 }
2986 },
2987 "match": "(?<![\\]\\\\])(\\[)((?:[^\\s\\[\\]\\\\]|\\\\[\\[\\]])+?)((?<!\\\\)\\])",
2988 "name": "meta.link.reference.markdown"
2989 },
2990 "raw": {
2991 "captures": {
2992 "1": {
2993 "name": "punctuation.definition.raw.markdown"
2994 },
2995 "3": {
2996 "name": "punctuation.definition.raw.markdown"
2997 }
2998 },
2999 "match": "(`+)((?:[^`]|(?!(?<!`)\\1(?!`))`)*+)(\\1)",
3000 "name": "markup.inline.raw.string.markdown"
3001 },
3002 "strikethrough": {
3003 "captures": {
3004 "1": {
3005 "name": "punctuation.definition.strikethrough.markdown"
3006 },
3007 "2": {
3008 "patterns": [
3009 {
3010 "applyEndPatternLast": 1,
3011 "begin": "(?=<[^>]*?>)",
3012 "end": "(?<=>)",
3013 "patterns": [
3014 {
3015 "include": "text.html.derivative"
3016 }
3017 ]
3018 },
3019 {
3020 "include": "#escape"
3021 },
3022 {
3023 "include": "#ampersand"
3024 },
3025 {
3026 "include": "#bracket"
3027 },
3028 {
3029 "include": "#raw"
3030 },
3031 {
3032 "include": "#bold"
3033 },
3034 {
3035 "include": "#italic"
3036 },
3037 {
3038 "include": "#image-inline"
3039 },
3040 {
3041 "include": "#link-inline"
3042 },
3043 {
3044 "include": "#link-inet"
3045 },
3046 {
3047 "include": "#link-email"
3048 },
3049 {
3050 "include": "#image-ref"
3051 },
3052 {
3053 "include": "#link-ref-literal"
3054 },
3055 {
3056 "include": "#link-ref"
3057 },
3058 {
3059 "include": "#link-ref-shortcut"
3060 }
3061 ]
3062 },
3063 "3": {
3064 "name": "punctuation.definition.strikethrough.markdown"
3065 }
3066 },
3067 "match": "(?<!\\\\)(~{2,})((?:[^~]|(?!(?<![~\\\\])\\1(?!~))~)*+)(\\1)",
3068 "name": "markup.strikethrough.markdown"
3069 }
3070 }
3071 }
3072