summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/astro-vscode/languages/astro-markdown-language-configuration.json45
-rw-r--r--tools/astro-vscode/package.json74
-rw-r--r--tools/astro-vscode/src/index.ts4
-rw-r--r--tools/astro-vscode/syntaxes/astro-markdown.tmLanguage.json2829
-rw-r--r--tools/astro-vscode/syntaxes/astro.tmLanguage.json76
5 files changed, 3018 insertions, 10 deletions
diff --git a/tools/astro-vscode/languages/astro-markdown-language-configuration.json b/tools/astro-vscode/languages/astro-markdown-language-configuration.json
new file mode 100644
index 000000000..1ee3bf7e2
--- /dev/null
+++ b/tools/astro-vscode/languages/astro-markdown-language-configuration.json
@@ -0,0 +1,45 @@
+{
+ "comments": {
+ "blockComment": ["<!--", "-->"]
+ },
+ "brackets": [
+ ["---", "---"],
+ ["<!--", "-->"],
+ ["<", ">"],
+ ["{", "}"],
+ ["(", ")"]
+ ],
+ "autoClosingPairs": [
+ { "open": "{", "close": "}" },
+ { "open": "[", "close": "]" },
+ { "open": "(", "close": ")" },
+ { "open": "'", "close": "'" },
+ { "open": "\"", "close": "\"" },
+ {
+ "open": "<",
+ "close": ">",
+ "notIn": [
+ "string"
+ ]
+ },
+ { "open": "<!--", "close": "-->", "notIn": ["comment", "string"] },
+ ],
+ "autoCloseBefore": ";:.,=}])>` \n\t",
+ "surroundingPairs": [
+ { "open": "'", "close": "'" },
+ { "open": "\"", "close": "\"" },
+ { "open": "{", "close": "}" },
+ { "open": "[", "close": "]" },
+ { "open": "(", "close": ")" },
+ { "open": "<", "close": ">" },
+ { "open": "`", "close": "`" },
+ { "open": "_", "close": "_" },
+ { "open": "*", "close": "*" }
+ ],
+ "folding": {
+ "markers": {
+ "start": "^\\s*<!--\\s*#region\\b.*-->",
+ "end": "^\\s*<!--\\s*#endregion\\b.*-->"
+ }
+ }
+}
diff --git a/tools/astro-vscode/package.json b/tools/astro-vscode/package.json
index 0c3121f0f..343987ee1 100644
--- a/tools/astro-vscode/package.json
+++ b/tools/astro-vscode/package.json
@@ -24,12 +24,12 @@
"onLanguage:astro"
],
"dependencies": {
- "vscode-languageclient": "~7.0.0",
- "vscode-html-languageservice": "^3.0.3",
- "vscode-emmet-helper": "2.1.2",
"astro-languageserver": "0.4.0"
},
"devDependencies": {
+ "vscode-html-languageservice": "^3.0.3",
+ "vscode-emmet-helper": "2.1.2",
+ "vscode-languageclient": "~7.0.0",
"astro-scripts": "0.0.1",
"@types/vscode": "^1.52.0"
},
@@ -72,6 +72,13 @@
"Astro"
],
"configuration": "./languages/astro-language-configuration.json"
+ },
+ {
+ "id": "astro-markdown",
+ "aliases": [
+ "Astro Markdown"
+ ],
+ "configuration": "./languages/astro-markdown-language-configuration.json"
}
],
"grammars": [
@@ -79,11 +86,9 @@
"language": "astro",
"scopeName": "text.html.astro",
"path": "./syntaxes/astro.tmLanguage.json",
- "injectTo": [
- "text.html.markdown"
- ],
"embeddedLanguages": {
"text.html.astro": "astro",
+ "text.html.markdown.astro": "astro-markdown",
"text.html": "html",
"source.css": "css",
"source.scss": "scss",
@@ -91,6 +96,63 @@
"source.tsx": "typescriptreact",
"meta.embedded.block.frontmatter": "typescriptreact"
}
+ },
+ {
+ "language": "astro-markdown",
+ "scopeName": "text.html.markdown.astro",
+ "path": "./syntaxes/astro-markdown.tmLanguage.json",
+ "injectTo": [
+ "text.html.astro"
+ ],
+ "embeddedLanguages": {
+ "text.html.astro": "astro",
+ "text.html.markdown.astro": "astro-markdown",
+ "text.html.markdown": "markdown",
+ "source.tsx": "typescriptreact",
+ "source.js": "javascript",
+ "source.css": "css",
+ "meta.embedded.block.frontmatter": "yaml",
+ "meta.embedded.block.css": "css",
+ "meta.embedded.block.astro": "astro",
+ "meta.embedded.block.ini": "ini",
+ "meta.embedded.block.java": "java",
+ "meta.embedded.block.lua": "lua",
+ "meta.embedded.block.makefile": "makefile",
+ "meta.embedded.block.perl": "perl",
+ "meta.embedded.block.r": "r",
+ "meta.embedded.block.ruby": "ruby",
+ "meta.embedded.block.php": "php",
+ "meta.embedded.block.sql": "sql",
+ "meta.embedded.block.vs_net": "vs_net",
+ "meta.embedded.block.xml": "xml",
+ "meta.embedded.block.xsl": "xsl",
+ "meta.embedded.block.yaml": "yaml",
+ "meta.embedded.block.dosbatch": "dosbatch",
+ "meta.embedded.block.clojure": "clojure",
+ "meta.embedded.block.coffee": "coffee",
+ "meta.embedded.block.c": "c",
+ "meta.embedded.block.cpp": "cpp",
+ "meta.embedded.block.diff": "diff",
+ "meta.embedded.block.dockerfile": "dockerfile",
+ "meta.embedded.block.go": "go",
+ "meta.embedded.block.groovy": "groovy",
+ "meta.embedded.block.pug": "jade",
+ "meta.embedded.block.javascript": "javascript",
+ "meta.embedded.block.json": "json",
+ "meta.embedded.block.less": "less",
+ "meta.embedded.block.objc": "objc",
+ "meta.embedded.block.scss": "scss",
+ "meta.embedded.block.perl6": "perl6",
+ "meta.embedded.block.powershell": "powershell",
+ "meta.embedded.block.python": "python",
+ "meta.embedded.block.rust": "rust",
+ "meta.embedded.block.scala": "scala",
+ "meta.embedded.block.shellscript": "shellscript",
+ "meta.embedded.block.typescript": "typescript",
+ "meta.embedded.block.typescriptreact": "typescriptreact",
+ "meta.embedded.block.csharp": "csharp",
+ "meta.embedded.block.fsharp": "fsharp"
+ }
}
]
}
diff --git a/tools/astro-vscode/src/index.ts b/tools/astro-vscode/src/index.ts
index 3344a449c..19a7388a8 100644
--- a/tools/astro-vscode/src/index.ts
+++ b/tools/astro-vscode/src/index.ts
@@ -1,6 +1,6 @@
import * as vscode from 'vscode';
-import * as lsp from 'vscode-languageclient/node';
-import { activateTagClosing } from './html/autoClose';
+import * as lsp from 'vscode-languageclient/node.js';
+import { activateTagClosing } from './html/autoClose.js';
let docClient: lsp.LanguageClient;
diff --git a/tools/astro-vscode/syntaxes/astro-markdown.tmLanguage.json b/tools/astro-vscode/syntaxes/astro-markdown.tmLanguage.json
new file mode 100644
index 000000000..74cbcf282
--- /dev/null
+++ b/tools/astro-vscode/syntaxes/astro-markdown.tmLanguage.json
@@ -0,0 +1,2829 @@
+{
+ "information_for_contributors": ["This file has been modified from https://github.com/microsoft/vscode-markdown-tm-grammar/commit/399ff6f608a7bef3f68713be23cdcb4c6d475804"],
+ "name": "Astro Markdown",
+ "scopeName": "text.html.markdown.astro",
+ "patterns": [
+ {
+ "include": "#frontMatter"
+ },
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#astro-expressions"
+ }
+ ],
+ "repository": {
+ "astro-expressions": {
+ "patterns": [
+ {
+ "begin": "(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.raw.markdown"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.raw.markdown"
+ }
+ },
+ "name": "expression.embbeded.astro",
+ "patterns": [
+ {
+ "include": "source.tsx"
+ }
+ ]
+ }
+ ]
+ },
+ "block": {
+ "patterns": [
+ {
+ "include": "#separator"
+ },
+ {
+ "include": "#heading"
+ },
+ {
+ "include": "#blockquote"
+ },
+ {
+ "include": "#lists"
+ },
+ {
+ "include": "#fenced_code_block"
+ },
+ {
+ "include": "#link-def"
+ },
+ {
+ "include": "#html"
+ },
+ {
+ "include": "#paragraph"
+ },
+ {
+ "include": "#astro-expressions"
+ }
+ ]
+ },
+ "blockquote": {
+ "begin": "(^|\\G)\\s*(>) ?",
+ "captures": {
+ "2": {
+ "name": "punctuation.definition.quote.begin.markdown"
+ }
+ },
+ "name": "markup.quote.markdown",
+ "patterns": [
+ {
+ "include": "#block"
+ }
+ ],
+ "while": "(^|\\G)\\s*(>) ?"
+ },
+ "fenced_code_block_astro": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(astro)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s*)(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.astro",
+ "patterns": [
+ {
+ "include": "text.html.astro"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_css": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.css",
+ "patterns": [
+ {
+ "include": "source.css"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_basic": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.html",
+ "patterns": [
+ {
+ "include": "text.html.basic"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_ini": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.ini",
+ "patterns": [
+ {
+ "include": "source.ini"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_java": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.java",
+ "patterns": [
+ {
+ "include": "source.java"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_lua": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.lua",
+ "patterns": [
+ {
+ "include": "source.lua"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_makefile": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.makefile",
+ "patterns": [
+ {
+ "include": "source.makefile"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_perl": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.perl",
+ "patterns": [
+ {
+ "include": "source.perl"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_r": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.r",
+ "patterns": [
+ {
+ "include": "source.r"
+ }
+ ]
+ }
+ ]
+ },
+ "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+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.ruby",
+ "patterns": [
+ {
+ "include": "source.ruby"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_php": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.php",
+ "patterns": [
+ {
+ "include": "text.html.basic"
+ },
+ {
+ "include": "source.php"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_sql": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.sql",
+ "patterns": [
+ {
+ "include": "source.sql"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_vs_net": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.vs_net",
+ "patterns": [
+ {
+ "include": "source.asp.vb.net"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_xml": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.xml",
+ "patterns": [
+ {
+ "include": "text.xml"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_xsl": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.xsl",
+ "patterns": [
+ {
+ "include": "text.xml.xsl"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_yaml": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.yaml",
+ "patterns": [
+ {
+ "include": "source.yaml"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_dosbatch": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.dosbatch",
+ "patterns": [
+ {
+ "include": "source.batchfile"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_clojure": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.clojure",
+ "patterns": [
+ {
+ "include": "source.clojure"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_coffee": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.coffee",
+ "patterns": [
+ {
+ "include": "source.coffee"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_c": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.c",
+ "patterns": [
+ {
+ "include": "source.c"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_cpp": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.cpp source.cpp",
+ "patterns": [
+ {
+ "include": "source.cpp"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_diff": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.diff",
+ "patterns": [
+ {
+ "include": "source.diff"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_dockerfile": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.dockerfile",
+ "patterns": [
+ {
+ "include": "source.dockerfile"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_git_commit": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.git_commit",
+ "patterns": [
+ {
+ "include": "text.git-commit"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_git_rebase": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.git_rebase",
+ "patterns": [
+ {
+ "include": "text.git-rebase"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_go": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.go",
+ "patterns": [
+ {
+ "include": "source.go"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_groovy": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.groovy",
+ "patterns": [
+ {
+ "include": "source.groovy"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_pug": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.pug",
+ "patterns": [
+ {
+ "include": "text.pug"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_js": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|\\{\\.js.+?\\})((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.javascript",
+ "patterns": [
+ {
+ "include": "source.js"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_js_regexp": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.js_regexp",
+ "patterns": [
+ {
+ "include": "source.js.regexp"
+ }
+ ]
+ }
+ ]
+ },
+ "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+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.json",
+ "patterns": [
+ {
+ "include": "source.json"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_jsonc": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.jsonc",
+ "patterns": [
+ {
+ "include": "source.json.comments"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_less": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.less",
+ "patterns": [
+ {
+ "include": "source.css.less"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_objc": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.objc",
+ "patterns": [
+ {
+ "include": "source.objc"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_swift": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.swift",
+ "patterns": [
+ {
+ "include": "source.swift"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_scss": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.scss",
+ "patterns": [
+ {
+ "include": "source.css.scss"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_perl6": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.perl6",
+ "patterns": [
+ {
+ "include": "source.perl.6"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_powershell": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.powershell",
+ "patterns": [
+ {
+ "include": "source.powershell"
+ }
+ ]
+ }
+ ]
+ },
+ "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+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_regexp_python": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.regexp_python",
+ "patterns": [
+ {
+ "include": "source.regexp.python"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_rust": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.rust",
+ "patterns": [
+ {
+ "include": "source.rust"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_scala": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.scala",
+ "patterns": [
+ {
+ "include": "source.scala"
+ }
+ ]
+ }
+ ]
+ },
+ "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+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.shellscript",
+ "patterns": [
+ {
+ "include": "source.shell"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_ts": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.typescript",
+ "patterns": [
+ {
+ "include": "source.ts"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_tsx": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.typescriptreact",
+ "patterns": [
+ {
+ "include": "source.tsx"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_csharp": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.csharp",
+ "patterns": [
+ {
+ "include": "source.cs"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_fsharp": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.fsharp",
+ "patterns": [
+ {
+ "include": "source.fsharp"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_dart": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.dart",
+ "patterns": [
+ {
+ "include": "source.dart"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_handlebars": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.handlebars",
+ "patterns": [
+ {
+ "include": "text.html.handlebars"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_markdown": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.markdown",
+ "patterns": [
+ {
+ "include": "text.html.markdown"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_log": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.log",
+ "patterns": [
+ {
+ "include": "text.log"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_erlang": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.erlang",
+ "patterns": [
+ {
+ "include": "source.erlang"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_elixir": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|\\{)[^`~]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.elixir",
+ "patterns": [
+ {
+ "include": "source.elixir"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block": {
+ "patterns": [
+ {
+ "include": "#fenced_code_block_css"
+ },
+ {
+ "include": "#fenced_code_block_astro"
+ },
+ {
+ "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_unknown"
+ }
+ ]
+ },
+ "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)\\s*$",
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "name": "markup.fenced_code.block.markdown"
+ },
+ "heading": {
+ "match": "(?:^|\\G)\\s*(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "match": "(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.6.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.astro"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.5.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.astro"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.4.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.astro"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.3.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.astro"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.2.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.astro"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.1.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.astro"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "name": "markup.heading.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ }
+ ]
+ },
+ "heading-setext": {
+ "patterns": [
+ {
+ "match": "^(={3,})(?=[ \\t]*$\\n?)",
+ "name": "markup.heading.setext.1.markdown"
+ },
+ {
+ "match": "^(-{3,})(?=[ \\t]*$\\n?)",
+ "name": "markup.heading.setext.2.markdown"
+ }
+ ]
+ },
+ "html": {
+ "patterns": [
+ {
+ "begin": "(^|\\G)\\s*(<!--)",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.comment.html"
+ },
+ "2": {
+ "name": "punctuation.definition.comment.html"
+ }
+ },
+ "end": "(-->)",
+ "name": "comment.block.html"
+ },
+ {
+ "begin": "(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?</(script|style|pre)>))",
+ "end": "(?i)(.*)((</)(script|style|pre)(>))",
+ "endCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "text.html.markdown.astro"
+ }
+ ]
+ },
+ "2": {
+ "name": "meta.tag.structure.$4.end.html"
+ },
+ "3": {
+ "name": "punctuation.definition.tag.begin.html"
+ },
+ "4": {
+ "name": "entity.name.tag.html"
+ },
+ "5": {
+ "name": "punctuation.definition.tag.end.html"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(\\s*|$)",
+ "patterns": [
+ {
+ "include": "text.html.markdown.astro"
+ }
+ ],
+ "while": "(?i)^(?!.*</(script|style|pre|Markdown)>)"
+ }
+ ]
+ },
+ {
+ "begin": "(?i)(?=</?[a-zA-Z]+[^\\s/&gt;]*(\\s|$|/?>))",
+ "while": "(?i)^(?!.*</(\\1||\\2)>)",
+ "patterns": [
+ {
+ "include": "text.html.astro"
+ }
+ ]
+ },
+ {
+ "begin": "(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|</[a-zA-Z0-9\\-]>)\\s*$)",
+ "patterns": [
+ {
+ "include": "text.html.astro"
+ }
+ ],
+ "while": "(?i)^(?!.*</(\\1||\\2)>)"
+ }
+ ]
+ },
+ "link-def": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.constant.markdown"
+ },
+ "2": {
+ "name": "constant.other.reference.link.markdown"
+ },
+ "3": {
+ "name": "punctuation.definition.constant.markdown"
+ },
+ "4": {
+ "name": "punctuation.separator.key-value.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "6": {
+ "name": "markup.underline.link.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "8": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "9": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "10": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "11": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "12": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "13": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "14": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "15": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "16": {
+ "name": "punctuation.definition.string.end.markdown"
+ }
+ },
+ "match": "(?x)\n \\s* # Leading whitespace\n (\\[)([^]]+?)(\\])(:) # Reference name\n [ \\t]* # Optional whitespace\n (<?)(\\S+?)(>?) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n $\n",
+ "name": "meta.link.reference.def.markdown"
+ },
+ "list_paragraph": {
+ "begin": "(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)",
+ "name": "meta.paragraph.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.astro"
+ },
+ {
+ "include": "#heading-setext"
+ }
+ ],
+ "while": "(^|\\G)(?!\\s*$|#|\\s*([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|\\s*[*+->]|\\s*[0-9]+\\.)"
+ },
+ "lists": {
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)([*+-])([ \\t])",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.list.begin.markdown"
+ }
+ },
+ "comment": "Currently does not support un-indented second lines.",
+ "name": "markup.list.unnumbered.markdown",
+ "patterns": [
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#list_paragraph"
+ }
+ ],
+ "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"
+ },
+ {
+ "begin": "(^|\\G)(\\s*)([0-9]+\\.)([ \\t])",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.list.begin.markdown"
+ }
+ },
+ "name": "markup.list.numbered.markdown",
+ "patterns": [
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#list_paragraph"
+ }
+ ],
+ "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"
+ }
+ ]
+ },
+ "paragraph": {
+ "begin": "(^|\\G)\\s*(?=\\S)",
+ "name": "meta.paragraph.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.astro"
+ },
+ {
+ "include": "#heading-setext"
+ }
+ ],
+ "while": "(^|\\G)(?=\\s*[-=]{3,}\\s*$)"
+ },
+ "separator": {
+ "match": "(^|\\G)\\s*([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?",
+ "name": "meta.separator.markdown"
+ },
+ "frontMatter": {
+ "begin": "\\A-{3}\\s*$",
+ "contentName": "meta.embedded.block.frontmatter",
+ "patterns": [
+ {
+ "include": "source.yaml"
+ }
+ ],
+ "end": "(^|\\G)-{3}|\\.{3}\\s*$"
+ },
+ "inline": {
+ "patterns": [
+ {
+ "include": "#ampersand"
+ },
+ {
+ "include": "#bracket"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#italic"
+ },
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#escape"
+ },
+ {
+ "include": "#image-inline"
+ },
+ {
+ "include": "#image-ref"
+ },
+ {
+ "include": "#link-email"
+ },
+ {
+ "include": "#link-inet"
+ },
+ {
+ "include": "#link-inline"
+ },
+ {
+ "include": "#link-ref"
+ },
+ {
+ "include": "#link-ref-literal"
+ },
+ {
+ "include": "#link-ref-shortcut"
+ },
+ {
+ "include": "#astro-expressions"
+ }
+ ]
+ },
+ "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"
+ },
+ "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": 1,
+ "begin": "(?=<[^>]*?>)",
+ "end": "(?<=>)",
+ "patterns": [
+ {
+ "include": "text.html.astro"
+ }
+ ]
+ },
+ {
+ "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"
+ }
+ ]
+ },
+ "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"
+ },
+ "image-inline": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.description.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.metadata.markdown"
+ },
+ "6": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "7": {
+ "name": "markup.underline.link.image.markdown"
+ },
+ "8": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "9": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "10": {
+ "name": "punctuation.definition.string.markdown"
+ },
+ "11": {
+ "name": "punctuation.definition.string.markdown"
+ },
+ "12": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "13": {
+ "name": "punctuation.definition.string.markdown"
+ },
+ "14": {
+ "name": "punctuation.definition.string.markdown"
+ },
+ "15": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "16": {
+ "name": "punctuation.definition.string.markdown"
+ },
+ "17": {
+ "name": "punctuation.definition.string.markdown"
+ },
+ "18": {
+ "name": "punctuation.definition.metadata.markdown"
+ }
+ },
+ "match": "(?x)\n (\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n (<?)(\\S+?)(>?) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n",
+ "name": "meta.image.inline.markdown"
+ },
+ "image-ref": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.description.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.constant.markdown"
+ },
+ "6": {
+ "name": "constant.other.reference.link.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.constant.markdown"
+ }
+ },
+ "match": "(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",
+ "name": "meta.image.reference.markdown"
+ },
+ "italic": {
+ "begin": "(?x) (?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S) # Open\n (?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (?<square> # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g<square>*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whtiespace\n <?(.*?)>? # URL\n [ \\t]*+ # Optional whtiespace\n ( # Optional Title\n (?<title>['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | \\k<open>\\k<open> # Must be bold closer\n | (?!(?<=\\S)\\k<open>). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=_\\b|\\*)\\k<open> # Close\n )\n",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.italic.markdown"
+ }
+ },
+ "end": "(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",
+ "name": "markup.italic.markdown",
+ "patterns": [
+ {
+ "applyEndPatternLast": 1,
+ "begin": "(?=<[^>]*?>)",
+ "end": "(?<=>)",
+ "patterns": [
+ {
+ "include": "text.html.astro"
+ }
+ ]
+ },
+ {
+ "include": "#escape"
+ },
+ {
+ "include": "#ampersand"
+ },
+ {
+ "include": "#bracket"
+ },
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "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"
+ }
+ ]
+ },
+ "link-email": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "2": {
+ "name": "markup.underline.link.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.link.markdown"
+ }
+ },
+ "match": "(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)",
+ "name": "meta.link.email.lt-gt.markdown"
+ },
+ "link-inet": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "2": {
+ "name": "markup.underline.link.markdown"
+ },
+ "3": {
+ "name": "punctuation.definition.link.markdown"
+ }
+ },
+ "match": "(<)((?:https?|ftp)://.*?)(>)",
+ "name": "meta.link.inet.markdown"
+ },
+ "link-inline": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.metadata.markdown"
+ },
+ "6": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "7": {
+ "name": "markup.underline.link.markdown"
+ },
+ "9": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "10": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "11": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "12": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "13": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "14": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "15": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "16": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "17": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "18": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "19": {
+ "name": "punctuation.definition.metadata.markdown"
+ }
+ },
+ "match": "(?x)\n (\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n (<?)((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)(>?) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n",
+ "name": "meta.link.inline.markdown"
+ },
+ "link-ref": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.constant.begin.markdown"
+ },
+ "6": {
+ "name": "constant.other.reference.link.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.constant.end.markdown"
+ }
+ },
+ "match": "(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])",
+ "name": "meta.link.reference.markdown"
+ },
+ "link-ref-literal": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.constant.begin.markdown"
+ },
+ "6": {
+ "name": "punctuation.definition.constant.end.markdown"
+ }
+ },
+ "match": "(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])",
+ "name": "meta.link.reference.literal.markdown"
+ },
+ "link-ref-shortcut": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown"
+ },
+ "3": {
+ "name": "punctuation.definition.string.end.markdown"
+ }
+ },
+ "match": "(\\[)(\\S+?)(\\])",
+ "name": "meta.link.reference.markdown"
+ },
+ "raw": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.raw.markdown"
+ },
+ "3": {
+ "name": "punctuation.definition.raw.markdown"
+ }
+ },
+ "match": "(`+)([^`]|(?!(?<!`)\\1(?!`))`)*+(\\1)",
+ "name": "markup.inline.raw.string.markdown"
+ }
+ }
+}
diff --git a/tools/astro-vscode/syntaxes/astro.tmLanguage.json b/tools/astro-vscode/syntaxes/astro.tmLanguage.json
index 225b023ca..d74925222 100644
--- a/tools/astro-vscode/syntaxes/astro.tmLanguage.json
+++ b/tools/astro-vscode/syntaxes/astro.tmLanguage.json
@@ -4,8 +4,12 @@
"foldingStopMarker": "(?x)\n(</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|li|form|dl)>\n|^(?!.*?<!--).*?--\\s*>\n|^<!--\\ end\\ tminclude\\ -->$\n|<\\?(?:php)?.*\\bend(if|for(each)?|while)\\b\n|\\{\\{?/(if|foreach|capture|literal|foreach|php|section|strip)\n|^[^{]*\\}\n)",
"keyEquivalent": "^~H",
"name": "Astro",
+ "scopeName": "text.html.astro",
"patterns": [
{
+ "include": "#astro-markdown"
+ },
+ {
"include": "#astro-expressions"
},
{
@@ -473,6 +477,32 @@
]
},
{
+ "begin": "(</?)([A-Z][a-zA-Z0-9-]*)(\\:(load|idle|visible))?",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.tag.begin.html"
+ },
+ "2": {
+ "name": "entity.name.tag.component.astro"
+ },
+ "3": {
+ "name": "keyword.control.loading.astro"
+ }
+ },
+ "end": "(/?>)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.tag.end.html"
+ }
+ },
+ "name": "meta.tag.component.astro",
+ "patterns": [
+ {
+ "include": "#tag-stuff"
+ }
+ ]
+ },
+ {
"begin": "(</?)([a-zA-Z0-9:-]+)",
"beginCaptures": {
"1": {
@@ -673,7 +703,50 @@
"include": "#string-single-quoted"
},
{
+ "include": "#astro-load-directive"
+ },
+ {
"include": "#astro-expressions"
+ },
+ {
+ "include": "#astro-markdown"
+ }
+ ]
+ },
+ "astro-markdown": {
+ "begin": "(?:^\\s+)?(<)(Markdown)\\b(?=[^>]*)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.tag.begin.html"
+ },
+ "2": {
+ "name": "entity.name.tag.markdown.astro"
+ }
+ },
+ "end": "(</)(Markdown)(>)",
+ "endCaptures": {
+ "2": {
+ "name": "punctuation.definition.tag.html"
+ }
+ },
+ "name": "text.html.markdown.astro",
+ "patterns": [
+ {
+ "include": "#tag-stuff"
+ },
+ {
+ "begin": "(>)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.tag.end.html"
+ }
+ },
+ "end": "(?=</Markdown)",
+ "patterns": [
+ {
+ "include": "text.html.markdown.astro"
+ }
+ ]
}
]
},
@@ -701,6 +774,5 @@
}
]
}
- },
- "scopeName": "text.html.astro"
+ }
}