You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4416 lines
132 KiB
Plaintext

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<!--Original: https://github.com/microsoft/vscode-markdown-tm-grammar/blob/master/syntaxes/markdown.tmLanguage -->
<dict>
<key>fileTypes</key>
<array>
<string>sd</string>
<string>sdown</string>
<string>snekdown</string>
</array>
<key>keyEquivalent</key>
<string>^~M</string>
<key>name</key>
<string>Snekdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#frontMatter</string>
</dict>
<dict>
<key>include</key>
<string>#block</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>block</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#separator</string>
</dict>
<dict>
<key>include</key>
<string>#heading</string>
</dict>
<dict>
<key>include</key>
<string>#blockquote</string>
</dict>
<dict>
<key>include</key>
<string>#lists</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block</string>
</dict>
<dict>
<key>include</key>
<string>#raw_block</string>
</dict>
<dict>
<key>include</key>
<string>#link-def</string>
</dict>
<dict>
<key>include</key>
<string>#html</string>
</dict>
<dict>
<key>include</key>
<string>#paragraph</string>
</dict>
</array>
</dict>
<key>blockquote</key>
<dict>
<key>begin</key>
<string>(^|\G)[ ]{0,3}(&gt;) ?</string>
<key>captures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.quote.begin.snekdown</string>
</dict>
</dict>
<key>name</key>
<string>markup.quote.snekdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#block</string>
</dict>
</array>
<key>while</key>
<string>(^|\G)\s*(&gt;) ?</string>
</dict>
<key>fenced_code_block_css</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(css|css.erb)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.css</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.css</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_basic</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.html</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_ini</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(ini|conf)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.ini</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.ini</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_java</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(java|bsh)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.java</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.java</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_lua</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(lua)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.lua</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.lua</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_makefile</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.makefile</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.makefile</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_perl</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.perl</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_r</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(R|r|s|S|Rprofile|\{\.r.+?\})((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.r</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.r</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_ruby</key>
<dict>
<key>begin</key>
<string>(^|\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+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.ruby</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_php</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.php</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
<dict>
<key>include</key>
<string>source.php</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_sql</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(sql|ddl|dml)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.sql</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.sql</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_vs_net</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(vb)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.vs_net</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.asp.vb.net</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_xml</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.xml</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.xml</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_xsl</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(xsl|xslt)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.xsl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.xml.xsl</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_yaml</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(yaml|yml)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.yaml</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.yaml</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_dosbatch</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(bat|batch)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.dosbatch</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.batchfile</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_clojure</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(clj|cljs|clojure)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.clojure</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.clojure</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_coffee</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(coffee|Cakefile|coffee.erb)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.coffee</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.coffee</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_c</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(c|h)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.c</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.c</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_cpp</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(cpp|c\+\+|cxx)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.cpp source.cpp</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.cpp</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_diff</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(patch|diff|rej)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.diff</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.diff</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_dockerfile</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(dockerfile|Dockerfile)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.dockerfile</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.dockerfile</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_git_commit</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.git_commit</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.git-commit</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_git_rebase</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(git-rebase-todo)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.git_rebase</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.git-rebase</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_go</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(go|golang)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.go</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.go</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_groovy</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(groovy|gvy)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.groovy</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.groovy</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_pug</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(jade|pug)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.pug</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.pug</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_js</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(js|jsx|javascript|es6|mjs|cjs|\{\.js.+?\})((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.javascript</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.js</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_js_regexp</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(regexp)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.js_regexp</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.js.regexp</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_json</key>
<dict>
<key>begin</key>
<string>(^|\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+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.json</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.json</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_jsonc</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(jsonc)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.jsonc</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.json.comments</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_less</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(less)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.less</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.css.less</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_objc</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.objc</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.objc</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_swift</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(swift)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.swift</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.swift</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_scss</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(scss)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.scss</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.css.scss</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_perl6</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(perl6|p6|pl6|pm6|nqp)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.perl6</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.perl.6</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_powershell</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(powershell|ps1|psm1|psd1)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.powershell</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.powershell</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_python</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\{\.python.+?\})((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.python</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_regexp_python</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(re)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.regexp_python</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.regexp.python</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_rust</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(rust|rs|\{\.rust.+?\})((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.rust</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.rust</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_scala</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(scala|sbt)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.scala</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.scala</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_shell</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\{\.bash.+?\})((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.shellscript</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.shell</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_ts</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(typescript|ts)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.typescript</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.ts</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_tsx</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(tsx)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.typescriptreact</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.tsx</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_csharp</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(cs|csharp|c#)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.csharp</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.cs</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_fsharp</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(fs|fsharp|f#)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.fsharp</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.fsharp</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_dart</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(dart)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.dart</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.dart</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_handlebars</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(handlebars|hbs)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.handlebars</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.handlebars</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_markdown</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(markdown|md)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.snekdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.snekdown</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_log</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(log)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.log</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.log</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_erlang</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(erlang)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.erlang</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.erlang</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block_elixir</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(elixir)((\s+|:|\{)[^`~]*)?$)</string>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>fenced_code.block.language.attributes.snekdown</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(.*)</string>
<key>while</key>
<string>(^|\G)(?!\s*([`~]{3,})\s*$)</string>
<key>contentName</key>
<string>meta.embedded.block.elixir</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.elixir</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>fenced_code_block</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#fenced_code_block_css</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_basic</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_ini</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_java</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_lua</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_makefile</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_perl</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_r</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_php</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_sql</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_vs_net</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_xml</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_xsl</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_yaml</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_dosbatch</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_clojure</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_coffee</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_c</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_cpp</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_diff</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_dockerfile</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_git_commit</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_git_rebase</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_go</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_groovy</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_pug</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_js</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_js_regexp</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_json</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_jsonc</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_less</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_objc</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_swift</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_scss</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_perl6</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_powershell</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_python</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_regexp_python</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_rust</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_scala</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_shell</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_ts</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_tsx</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_csharp</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_fsharp</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_dart</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_handlebars</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_snekdown</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_log</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_erlang</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_elixir</string>
</dict>
<dict>
<key>include</key>
<string>#fenced_code_block_unknown</string>
</dict>
</array>
</dict>
<key>fenced_code_block_unknown</key>
<dict>
<key>begin</key>
<string>(^|\G)(\s*)(`{3,}|~{3,})\s*(?=([^`~]*)?$)</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language</string>
</dict>
</dict>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.snekdown</string>
</dict>
</dict>
<key>name</key>
<string>markup.fenced_code.block.snekdown</string>
</dict>
<key>heading</key>
<dict>
<key>match</key>
<string>(?:^|\G)[ ]{0,3}(#{1,6}\s+(.*?)(\s+#{1,6})?\s*)$</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(#{6})\s+(.*?)(?:\s+(#+))?\s*$</string>
<key>name</key>
<string>heading.6.snekdown</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.section.snekdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.snekdown</string>
</dict>
</dict>
</dict>
<dict>
<key>match</key>
<string>(#{5})\s+(.*?)(?:\s+(#+))?\s*$</string>
<key>name</key>
<string>heading.5.snekdown</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.section.snekdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.snekdown</string>
</dict>
</dict>
</dict>
<dict>
<key>match</key>
<string>(#{4})\s+(.*?)(?:\s+(#+))?\s*$</string>
<key>name</key>
<string>heading.4.snekdown</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.section.snekdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.snekdown</string>
</dict>
</dict>
</dict>
<dict>
<key>match</key>
<string>(#{3})\s+(.*?)(?:\s+(#+))?\s*$</string>
<key>name</key>
<string>heading.3.snekdown</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.section.snekdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.snekdown</string>
</dict>
</dict>
</dict>
<dict>
<key>match</key>
<string>(#{2})\s+(.*?)(?:\s+(#+))?\s*$</string>
<key>name</key>
<string>heading.2.snekdown</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.section.snekdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.snekdown</string>
</dict>
</dict>
</dict>
<dict>
<key>match</key>
<string>(#{1})\s+(.*?)(?:\s+(#+))?\s*$</string>
<key>name</key>
<string>heading.1.snekdown</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.section.snekdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.snekdown</string>
</dict>
</dict>
</dict>
</array>
</dict>
</dict>
<key>name</key>
<string>markup.heading.snekdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#inline</string>
</dict>
</array>
</dict>
<key>heading-setext</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>^(={3,})(?=[ \t]*$\n?)</string>
<key>name</key>
<string>markup.heading.setext.1.snekdown</string>
</dict>
<dict>
<key>match</key>
<string>^(-{3,})(?=[ \t]*$\n?)</string>
<key>name</key>
<string>markup.heading.setext.2.snekdown</string>
</dict>
</array>
</dict>
<key>html</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)\s*(&lt;!--)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.html</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.html</string>
</dict>
</dict>
<key>end</key>
<string>(--&gt;)</string>
<key>name</key>
<string>comment.block.html</string>
</dict>
<dict>
<key>begin</key>
<string>(?i)(^|\G)\s*(?=&lt;(script|style|pre)(\s|$|&gt;)(?!.*?&lt;/(script|style|pre)&gt;))</string>
<key>end</key>
<string>(?i)(.*)((&lt;/)(script|style|pre)(&gt;))</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.derivative</string>
</dict>
</array>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.tag.structure.$4.end.html</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.tag.begin.html</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>entity.name.tag.html</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.tag.end.html</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(\s*|$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.derivative</string>
</dict>
</array>
<key>while</key>
<string>(?i)^(?!.*&lt;/(script|style|pre)&gt;)</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?i)(^|\G)\s*(?=&lt;/?[a-zA-Z]+[^\s/&amp;gt;]*(\s|$|/?&gt;))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.derivative</string>
</dict>
</array>
<key>while</key>
<string>^(?!\s*$)</string>
</dict>
<dict>
<key>begin</key>
<string>(^|\G)\s*(?=(&lt;[a-zA-Z0-9\-](/?&gt;|\s.*?&gt;)|&lt;/[a-zA-Z0-9\-]&gt;)\s*$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.derivative</string>
</dict>
</array>
<key>while</key>
<string>^(?!\s*$)</string>
</dict>
</array>
</dict>
<key>link-def</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>constant.other.reference.link.snekdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.separator.key-value.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.snekdown</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>markup.underline.link.snekdown</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.snekdown</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.snekdown</string>
</dict>
<key>9</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>10</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.snekdown</string>
</dict>
<key>11</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.snekdown</string>
</dict>
<key>12</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>13</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.snekdown</string>
</dict>
<key>14</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.snekdown</string>
</dict>
<key>15</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>16</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.snekdown</string>
</dict>
</dict>
<key>match</key>
<string>(?x)
\s* # Leading whitespace
(\[)([^]]+?)(\])(:) # Reference name
[ \t]* # Optional whitespace
(&lt;?)(\S+?)(&gt;?) # The url
[ \t]* # Optional whitespace
(?:
((\().+?(\))) # Match title in parens…
| ((").+?(")) # or in double quotes…
| ((').+?(')) # or in single quotes.
)? # Title is optional
\s* # Optional whitespace
$
</string>
<key>name</key>
<string>meta.link.reference.def.snekdown</string>
</dict>
<key>list_paragraph</key>
<dict>
<key>begin</key>
<string>(^|\G)(?=\S)(?![*+-&gt;]\s|[0-9]+\.\s)</string>
<key>name</key>
<string>meta.paragraph.snekdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#inline</string>
</dict>
<dict>
<key>include</key>
<string>text.html.derivative</string>
</dict>
<dict>
<key>include</key>
<string>#heading-setext</string>
</dict>
</array>
<key>while</key>
<string>(^|\G)(?!\s*$|#|[ ]{0,3}([-*_&gt;][ ]{2,}){3,}[ \t]*$\n?|[ ]{0,3}[*+-&gt;]|[ ]{0,3}[0-9]+\.)</string>
</dict>
<key>lists</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)([ ]{0,3})([*+-])([ \t])</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.list.begin.snekdown</string>
</dict>
</dict>
<key>comment</key>
<string>Currently does not support un-indented second lines.</string>
<key>name</key>
<string>markup.list.unnumbered.snekdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#block</string>
</dict>
<dict>
<key>include</key>
<string>#list_paragraph</string>
</dict>
</array>
<key>while</key>
<string>((^|\G)([ ]{2,4}|\t))|(^[ \t]*$)</string>
</dict>
<dict>
<key>begin</key>
<string>(^|\G)([ ]{0,3})([0-9]+\.)([ \t])</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.list.begin.snekdown</string>
</dict>
</dict>
<key>name</key>
<string>markup.list.numbered.snekdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#block</string>
</dict>
<dict>
<key>include</key>
<string>#list_paragraph</string>
</dict>
</array>
<key>while</key>
<string>((^|\G)([ ]{2,4}|\t))|(^[ \t]*$)</string>
</dict>
</array>
</dict>
<key>paragraph</key>
<dict>
<key>begin</key>
<string>(^|\G)[ ]{0,3}(?=\S)</string>
<key>name</key>
<string>meta.paragraph.snekdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#inline</string>
</dict>
<dict>
<key>include</key>
<string>text.html.derivative</string>
</dict>
<dict>
<key>include</key>
<string>#heading-setext</string>
</dict>
</array>
<key>while</key>
<string>(^|\G)((?=\s*[-=]{3,}\s*$)|[ ]{4,}(?=\S))</string>
</dict>
<key>raw_block</key>
<dict>
<key>begin</key>
<string>(^|\G)([ ]{4}|\t)</string>
<key>name</key>
<string>markup.raw.block.snekdown</string>
<key>while</key>
<string>(^|\G)([ ]{4}|\t)</string>
</dict>
<key>separator</key>
<dict>
<key>match</key>
<string>(^|\G)[ ]{0,3}([\*\-\_])([ ]{0,2}\2){2,}[ \t]*$\n?</string>
<key>name</key>
<string>meta.separator.snekdown</string>
</dict>
<key>frontMatter</key>
<dict>
<key>begin</key>
<string>\A-{3}\s*$</string>
<key>contentName</key>
<string>meta.embedded.block.frontmatter</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.yaml</string>
</dict>
</array>
<key>end</key>
<string>(^|\G)-{3}|\.{3}\s*$</string>
</dict>
<key>inline</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#ampersand</string>
</dict>
<dict>
<key>include</key>
<string>#bracket</string>
</dict>
<dict>
<key>include</key>
<string>#bold</string>
</dict>
<dict>
<key>include</key>
<string>#italic</string>
</dict>
<dict>
<key>include</key>
<string>#raw</string>
</dict>
<dict>
<key>include</key>
<string>#escape</string>
</dict>
<dict>
<key>include</key>
<string>#image-inline</string>
</dict>
<dict>
<key>include</key>
<string>#image-ref</string>
</dict>
<dict>
<key>include</key>
<string>#link-email</string>
</dict>
<dict>
<key>include</key>
<string>#link-inet</string>
</dict>
<dict>
<key>include</key>
<string>#link-inline</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref-literal</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref-shortcut</string>
</dict>
</array>
</dict>
<key>ampersand</key>
<dict>
<key>comment</key>
<string>snekdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.</string>
<key>match</key>
<string>&amp;(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)</string>
<key>name</key>
<string>meta.other.valid-ampersand.snekdown</string>
</dict>
<key>bold</key>
<dict>
<key>begin</key>
<string>(?x) (?&lt;open&gt;(\*\*(?=\w)|(?&lt;!\w)\*\*|(?&lt;!\w)\b__))(?=\S) (?=
(
&lt;[^&gt;]*+&gt; # HTML tags
| (?&lt;raw&gt;`+)([^`]|(?!(?&lt;!`)\k&lt;raw&gt;(?!`))`)*+\k&lt;raw&gt;
# Raw
| \\[\\`*_{}\[\]()#.!+\-&gt;]?+ # Escapes
| \[
(
(?&lt;square&gt; # Named group
[^\[\]\\] # Match most chars
| \\. # Escaped chars
| \[ \g&lt;square&gt;*+ \] # Nested brackets
)*+
\]
(
( # Reference Link
[ ]? # Optional space
\[[^\]]*+\] # Ref name
)
| ( # Inline Link
\( # Opening paren
[ \t]*+ # Optional whitespace
&lt;?(.*?)&gt;? # URL
[ \t]*+ # Optional whitespace
( # Optional Title
(?&lt;title&gt;['"])
(.*?)
\k&lt;title&gt;
)?
\)
)
)
)
| (?!(?&lt;=\S)\k&lt;open&gt;). # Everything besides
# style closer
)++
(?&lt;=\S)(?=__\b|\*\*)\k&lt;open&gt; # Close
)
</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.bold.snekdown</string>
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\S)(\1)</string>
<key>name</key>
<string>markup.bold.snekdown</string>
<key>patterns</key>
<array>
<dict>
<key>applyEndPatternLast</key>
<integer>1</integer>
<key>begin</key>
<string>(?=&lt;[^&gt;]*?&gt;)</string>
<key>end</key>
<string>(?&lt;=&gt;)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.derivative</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#escape</string>
</dict>
<dict>
<key>include</key>
<string>#ampersand</string>
</dict>
<dict>
<key>include</key>
<string>#bracket</string>
</dict>
<dict>
<key>include</key>
<string>#raw</string>
</dict>
<dict>
<key>include</key>
<string>#bold</string>
</dict>
<dict>
<key>include</key>
<string>#italic</string>
</dict>
<dict>
<key>include</key>
<string>#image-inline</string>
</dict>
<dict>
<key>include</key>
<string>#link-inline</string>
</dict>
<dict>
<key>include</key>
<string>#link-inet</string>
</dict>
<dict>
<key>include</key>
<string>#link-email</string>
</dict>
<dict>
<key>include</key>
<string>#image-ref</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref-literal</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref-shortcut</string>
</dict>
</array>
</dict>
<key>bracket</key>
<dict>
<key>comment</key>
<string>snekdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.</string>
<key>match</key>
<string>&lt;(?![a-zA-Z/?\$!])</string>
<key>name</key>
<string>meta.other.valid-bracket.snekdown</string>
</dict>
<key>escape</key>
<dict>
<key>match</key>
<string>\\[-`*_#+.!(){}\[\]\\&gt;]</string>
<key>name</key>
<string>constant.character.escape.snekdown</string>
</dict>
<key>image-inline</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.other.link.description.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.metadata.snekdown</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.snekdown</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>markup.underline.link.image.snekdown</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.snekdown</string>
</dict>
<key>9</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.snekdown</string>
</dict>
<key>10</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.snekdown</string>
</dict>
<key>11</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.snekdown</string>
</dict>
<key>12</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.snekdown</string>
</dict>
<key>13</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.snekdown</string>
</dict>
<key>14</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.snekdown</string>
</dict>
<key>15</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.snekdown</string>
</dict>
<key>16</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.snekdown</string>
</dict>
<key>17</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.snekdown</string>
</dict>
<key>18</key>
<dict>
<key>name</key>
<string>punctuation.definition.metadata.snekdown</string>
</dict>
</dict>
<key>match</key>
<string>(?x)
(\!\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])
# Match the link text.
(\() # Opening paren for url
(&lt;?)(\S+?)(&gt;?) # The url
[ \t]* # Optional whitespace
(?:
((\().+?(\))) # Match title in parens…
| ((").+?(")) # or in double quotes…
| ((').+?(')) # or in single quotes.
)? # Title is optional
\s* # Optional whitespace
(\))
</string>
<key>name</key>
<string>meta.image.inline.snekdown</string>
</dict>
<key>image-ref</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.other.link.description.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.snekdown</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>constant.other.reference.link.snekdown</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.snekdown</string>
</dict>
</dict>
<key>match</key>
<string>(\!\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])[ ]?(\[)(.*?)(\])</string>
<key>name</key>
<string>meta.image.reference.snekdown</string>
</dict>
<key>italic</key>
<dict>
<key>begin</key>
<string>(?x) (?&lt;open&gt;(\*(?=\w)|(?&lt;!\w)\*|(?&lt;!\w)\b_))(?=\S) # Open
(?=
(
&lt;[^&gt;]*+&gt; # HTML tags
| (?&lt;raw&gt;`+)([^`]|(?!(?&lt;!`)\k&lt;raw&gt;(?!`))`)*+\k&lt;raw&gt;
# Raw
| \\[\\`*_{}\[\]()#.!+\-&gt;]?+ # Escapes
| \[
(
(?&lt;square&gt; # Named group
[^\[\]\\] # Match most chars
| \\. # Escaped chars
| \[ \g&lt;square&gt;*+ \] # Nested brackets
)*+
\]
(
( # Reference Link
[ ]? # Optional space
\[[^\]]*+\] # Ref name
)
| ( # Inline Link
\( # Opening paren
[ \t]*+ # Optional whtiespace
&lt;?(.*?)&gt;? # URL
[ \t]*+ # Optional whtiespace
( # Optional Title
(?&lt;title&gt;['"])
(.*?)
\k&lt;title&gt;
)?
\)
)
)
)
| \k&lt;open&gt;\k&lt;open&gt; # Must be bold closer
| (?!(?&lt;=\S)\k&lt;open&gt;). # Everything besides
# style closer
)++
(?&lt;=\S)(?=_\b|\*)\k&lt;open&gt; # Close
)
</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.italic.snekdown</string>
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\S)(\1)((?!\1)|(?=\1\1))</string>
<key>name</key>
<string>markup.italic.snekdown</string>
<key>patterns</key>
<array>
<dict>
<key>applyEndPatternLast</key>
<integer>1</integer>
<key>begin</key>
<string>(?=&lt;[^&gt;]*?&gt;)</string>
<key>end</key>
<string>(?&lt;=&gt;)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.derivative</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#escape</string>
</dict>
<dict>
<key>include</key>
<string>#ampersand</string>
</dict>
<dict>
<key>include</key>
<string>#bracket</string>
</dict>
<dict>
<key>include</key>
<string>#raw</string>
</dict>
<dict>
<key>include</key>
<string>#bold</string>
</dict>
<dict>
<key>include</key>
<string>#image-inline</string>
</dict>
<dict>
<key>include</key>
<string>#link-inline</string>
</dict>
<dict>
<key>include</key>
<string>#link-inet</string>
</dict>
<dict>
<key>include</key>
<string>#link-email</string>
</dict>
<dict>
<key>include</key>
<string>#image-ref</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref-literal</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref-shortcut</string>
</dict>
</array>
</dict>
<key>link-email</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>markup.underline.link.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.snekdown</string>
</dict>
</dict>
<key>match</key>
<string>(&lt;)((?:mailto:)?[a-zA-Z0-9.!#$%&amp;'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*)(&gt;)</string>
<key>name</key>
<string>meta.link.email.lt-gt.snekdown</string>
</dict>
<key>link-inet</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>markup.underline.link.snekdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.snekdown</string>
</dict>
</dict>
<key>match</key>
<string>(&lt;)((?:https?|ftp)://.*?)(&gt;)</string>
<key>name</key>
<string>meta.link.inet.snekdown</string>
</dict>
<key>link-inline</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.other.link.title.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.metadata.snekdown</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.snekdown</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>markup.underline.link.snekdown</string>
</dict>
<key>9</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.snekdown</string>
</dict>
<key>10</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.snekdown</string>
</dict>
<key>11</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>12</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.snekdown</string>
</dict>
<key>13</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.snekdown</string>
</dict>
<key>14</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>15</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.snekdown</string>
</dict>
<key>16</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.snekdown</string>
</dict>
<key>17</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>18</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.snekdown</string>
</dict>
<key>19</key>
<dict>
<key>name</key>
<string>punctuation.definition.metadata.snekdown</string>
</dict>
</dict>
<key>match</key>
<string>(?x)
(\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])
# Match the link text.
(\() # Opening paren for url
(&lt;?)((?&lt;url&gt;(?&gt;[^\s()]+)|\(\g&lt;url&gt;*\))*)(&gt;?) # The url
[ \t]* # Optional whitespace
(?:
((\().+?(\))) # Match title in parens…
| ((").+?(")) # or in double quotes…
| ((').+?(')) # or in single quotes.
)? # Title is optional
\s* # Optional whitespace
(\))
</string>
<key>name</key>
<string>meta.link.inline.snekdown</string>
</dict>
<key>link-ref</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.other.link.title.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.begin.snekdown</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>constant.other.reference.link.snekdown</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.end.snekdown</string>
</dict>
</dict>
<key>match</key>
<string>(\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])(\[)([^\]]*+)(\])</string>
<key>name</key>
<string>meta.link.reference.snekdown</string>
</dict>
<key>link-ref-literal</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.other.link.title.snekdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.snekdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.begin.snekdown</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.end.snekdown</string>
</dict>
</dict>
<key>match</key>
<string>(\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])[ ]?(\[)(\])</string>
<key>name</key>
<string>meta.link.reference.literal.snekdown</string>
</dict>
<key>link-ref-shortcut</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.snekdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.other.link.title.snekdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.snekdown</string>
</dict>
</dict>
<key>match</key>
<string>(\[)(\S+?)(\])</string>
<key>name</key>
<string>meta.link.reference.snekdown</string>
</dict>
<key>raw</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.raw.snekdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.raw.snekdown</string>
</dict>
</dict>
<key>match</key>
<string>(`+)([^`]|(?!(?&lt;!`)\1(?!`))`)*+(\1)</string>
<key>name</key>
<string>markup.inline.raw.string.snekdown</string>
</dict>
</dict>
<key>scopeName</key>
<string>text.html.snekdown</string>
<key>uuid</key>
<string>0A1D9874-B448-11D9-BD50-000D93B6E43C</string>
</dict>
</plist>