UNPKG

carta-md

Version:

A lightweight, fully customizable, Markdown editor

1,035 lines 82.6 kB
import {} from 'shiki'; const lang = { displayName: 'CartaMarkdown', name: 'cartamd', patterns: [{ include: '#frontMatter' }, { include: '#block' }], repository: { $self: {}, $base: {}, ampersand: { // comment: // 'Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.', 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: '#lists' }, { include: '#fenced_code_block' }, { include: '#raw_block' }, { include: '#link-def' }, { include: '#html' }, { include: '#table' }, { include: '#paragraph' } ] }, blockquote: { begin: '(^|\\G)[ ]{0,3}(>) ?', 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<[^>]*+>\n| (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n\n| \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+\n| \\[\n(\n(?<square>\n[^\\[\\]\\\\]\n| \\\\.\n| \\[ \\g<square>*+ \\]\n)*+\n\\]\n(\n(\n[ ]?\n\\[[^\\]]*+\\]\n)\n| (\n\\(\n[ \\t]*+\n<?(.*?)>?\n[ \\t]*+\n(\n(?<title>[\'"])\n(.*?)\n\\k<title>\n)?\n\\)\n)\n)\n)\n| (?!(?<=\\S)\\k<open>).\n\n)++\n(?<=\\S)(?=__\\b|\\*\\*)\\k<open>\n)\n', captures: { '1': { name: 'punctuation.definition.bold.markdown' } }, end: '(?<=\\S)(\\1)', name: 'markup.bold.markdown', patterns: [ { applyEndPatternLast: true, begin: '(?=<[^>]*?>)', end: '(?<=>)', patterns: [{ include: 'text.html.derivative' }] }, { 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: { // comment: // 'Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.', 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_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_julia' }, { 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_tex' }, { include: '#fenced_code_block_bibtex' }, { include: '#fenced_code_block_twig' }, { 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.cpp' }], 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_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: [{ include: 'text.git-commit' }], 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: [{ include: 'text.git-rebase' }], 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|dataviewjs|\\{\\.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_julia: { begin: '(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\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.julia', patterns: [{ include: 'source.julia' }], while: '(^|\\G)(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_latex: { begin: '(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex)((\\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_tex: { begin: '(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(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.tex', patterns: [{ include: 'text.tex' }], 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: [{ include: 'text.log' }], 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: 'text.html.markdown' }], 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: 'source.php' }], while: '(^|\\G)(?!\\s*([`~]{3,})\\s*$)' } ] }, fenced_code_block_powershell: { begin: '(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1|pwsh)((\\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.pug' }], 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.markdow