UNPKG

@wooorm/starry-night

Version:
1,210 lines (1,209 loc) 69.4 kB
/** * @import {Grammar} from '@wooorm/starry-night' */ /** @type {Grammar} */ const grammar = { extensions: [], names: [], patterns: [{include: '#frontMatter'}, {include: '#block'}], repository: { ampersand: { match: '&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)', name: 'meta.other.valid-ampersand.markdown' }, block: { patterns: [ {include: '#separator'}, {include: '#heading'}, {include: '#blockquote'}, {include: '#fenced_code_block'}, {include: '#link-def'}, {include: '#html'}, {include: '#paragraph'} ] }, blockquote: { begin: '((?!.*`\\|)(?:^|\\G))\\s*(>) ?', captures: {2: {name: 'punctuation.definition.quote.begin.markdown'}}, name: 'markup.quote.markdown', patterns: [{include: '#block'}], while: '((?!.*`\\|)(?:^|\\G))\\s*(>) ?' }, bold: { 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', captures: {1: {name: 'punctuation.definition.bold.markdown'}}, end: '(?<=\\S)(\\1)', name: 'markup.bold.markdown', patterns: [ { applyEndPatternLast: true, begin: '(?=<[^>]*?>)', end: '(?<=>)', patterns: [] }, {include: '#escape'}, {include: '#ampersand'}, {include: '#bracket'}, {include: '#raw'}, {include: '#bold'}, {include: '#italic'}, {include: '#image-inline'}, {include: '#link-inline'}, {include: '#link-inet'}, {include: '#link-email'}, {include: '#image-ref'}, {include: '#link-ref-literal'}, {include: '#link-ref'}, {include: '#link-ref-shortcut'}, {include: '#strikethrough'} ] }, bracket: { match: '<(?![a-zA-Z/?\\$!])', name: 'meta.other.valid-bracket.markdown' }, escape: { match: '\\\\[-`*_#+.!(){}\\[\\]\\\\>]', name: 'constant.character.escape.markdown' }, fenced_code_block: { patterns: [ {include: '#fenced_code_block_d2'}, {include: '#fenced_code_block_css'}, {include: '#fenced_code_block_basic'}, {include: '#fenced_code_block_ini'}, {include: '#fenced_code_block_java'}, {include: '#fenced_code_block_lua'}, {include: '#fenced_code_block_makefile'}, {include: '#fenced_code_block_perl'}, {include: '#fenced_code_block_r'}, {include: '#fenced_code_block_ruby'}, {include: '#fenced_code_block_php'}, {include: '#fenced_code_block_sql'}, {include: '#fenced_code_block_vs_net'}, {include: '#fenced_code_block_xml'}, {include: '#fenced_code_block_xsl'}, {include: '#fenced_code_block_yaml'}, {include: '#fenced_code_block_dosbatch'}, {include: '#fenced_code_block_clojure'}, {include: '#fenced_code_block_coffee'}, {include: '#fenced_code_block_c'}, {include: '#fenced_code_block_cpp'}, {include: '#fenced_code_block_diff'}, {include: '#fenced_code_block_dockerfile'}, {include: '#fenced_code_block_git_commit'}, {include: '#fenced_code_block_git_rebase'}, {include: '#fenced_code_block_go'}, {include: '#fenced_code_block_groovy'}, {include: '#fenced_code_block_pug'}, {include: '#fenced_code_block_js'}, {include: '#fenced_code_block_js_regexp'}, {include: '#fenced_code_block_json'}, {include: '#fenced_code_block_jsonc'}, {include: '#fenced_code_block_less'}, {include: '#fenced_code_block_objc'}, {include: '#fenced_code_block_swift'}, {include: '#fenced_code_block_scss'}, {include: '#fenced_code_block_perl6'}, {include: '#fenced_code_block_powershell'}, {include: '#fenced_code_block_python'}, {include: '#fenced_code_block_regexp_python'}, {include: '#fenced_code_block_rust'}, {include: '#fenced_code_block_scala'}, {include: '#fenced_code_block_shell'}, {include: '#fenced_code_block_ts'}, {include: '#fenced_code_block_tsx'}, {include: '#fenced_code_block_csharp'}, {include: '#fenced_code_block_fsharp'}, {include: '#fenced_code_block_dart'}, {include: '#fenced_code_block_handlebars'}, {include: '#fenced_code_block_markdown'}, {include: '#fenced_code_block_log'}, {include: '#fenced_code_block_erlang'}, {include: '#fenced_code_block_elixir'}, {include: '#fenced_code_block_latex'}, {include: '#fenced_code_block_bibtex'}, {include: '#fenced_code_block_unknown'} ] }, fenced_code_block_basic: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.html', patterns: [{include: 'text.html.basic'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_bibtex: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.bibtex', patterns: [{include: 'text.bibtex'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_c: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.c', patterns: [{include: 'source.c'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_clojure: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.clojure', patterns: [{include: 'source.clojure'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_coffee: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.coffee', patterns: [{include: 'source.coffee'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_cpp: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.cpp source.cpp', patterns: [{include: 'source.c++'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_csharp: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.csharp', patterns: [{include: 'source.cs'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_css: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.css', patterns: [{include: 'source.css'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_d2: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:d2((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.d2', patterns: [{include: 'source.d2'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_dart: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.dart', patterns: [{include: 'source.dart'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_diff: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.diff', patterns: [{include: 'source.diff'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_dockerfile: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.dockerfile', patterns: [{include: 'source.dockerfile'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_dosbatch: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.dosbatch', patterns: [{include: 'source.batchfile'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_elixir: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.elixir', patterns: [{include: 'source.elixir'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_erlang: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.erlang', patterns: [{include: 'source.erlang'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_fsharp: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.fsharp', patterns: [{include: 'source.fsharp'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_git_commit: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.git_commit', patterns: [], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_git_rebase: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.git_rebase', patterns: [], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_go: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.go', patterns: [{include: 'source.go'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_groovy: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.groovy', patterns: [{include: 'source.groovy'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_handlebars: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.handlebars', patterns: [{include: 'text.html.handlebars'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_ini: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.ini', patterns: [{include: 'source.ini'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_java: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.java', patterns: [{include: 'source.java'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_js: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|\\{\\.js.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.javascript', patterns: [{include: 'source.js'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_js_regexp: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.js_regexp', patterns: [{include: 'source.js.regexp'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_json: { 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+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.json', patterns: [{include: 'source.json'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_jsonc: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.jsonc', patterns: [{include: 'source.json.comments'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_latex: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.latex', patterns: [{include: 'text.tex.latex'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_less: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.less', patterns: [{include: 'source.css.less'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_log: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.log', patterns: [], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_lua: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.lua', patterns: [{include: 'source.lua'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_makefile: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.makefile', patterns: [{include: 'source.makefile'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_markdown: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.markdown', patterns: [{include: 'source.gfm'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_objc: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.objc', patterns: [{include: 'source.objc'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_perl: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.perl', patterns: [{include: 'source.perl'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_perl6: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.perl6', patterns: [{include: 'source.perl.6'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_php: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.php', patterns: [{include: 'text.html.basic'}, {include: 'text.html.php'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_powershell: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.powershell', patterns: [{include: 'source.powershell'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_pug: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.pug', patterns: [{include: 'text.jade'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_python: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.python', patterns: [{include: 'source.python'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_r: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.r', patterns: [{include: 'source.r'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_regexp_python: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.regexp_python', patterns: [{include: 'source.regexp.python'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_ruby: { 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+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.ruby', patterns: [{include: 'source.ruby'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_rust: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.rust', patterns: [{include: 'source.rust'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_scala: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.scala', patterns: [{include: 'source.scala'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_scss: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.scss', patterns: [{include: 'source.css.scss'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_shell: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.shellscript', patterns: [{include: 'source.shell'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_sql: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.sql', patterns: [{include: 'source.sql'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_swift: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.swift', patterns: [{include: 'source.swift'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_ts: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.typescript', patterns: [{include: 'source.ts'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_tsx: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.typescriptreact', patterns: [{include: 'source.tsx'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_unknown: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?=([^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown' }, fenced_code_block_vs_net: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.vs_net', patterns: [], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_xml: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.markdown'}}, name: 'markup.fenced_code.block.markdown', patterns: [ { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(.*)', contentName: 'meta.embedded.block.xml', patterns: [{include: 'text.xml'}], while: '((?!.*`\\|)(?:^|\\G))(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_xsl: { begin: '((?!.*`\\|)(?:^|\\G))(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|,|\\{|\\?)[^`~]*)?$)', beginCaptures: { 3: {name: 'punctuation.definition.markdown'}, 4: {name: 'fenced_code.block.language.markdown'}, 5: {name: 'fenced_code.block.language.attributes.markdown'} }, end: '((?!.*`\\|)(?:^|\\G))(\\2|\\s{0,3})(\\3)\\s*$', endCaptures: {3: {name: 'punctuation.definition.mar