diff --git a/extensions/markdown/syntaxes/markdown.tmLanguage b/extensions/markdown/syntaxes/markdown.tmLanguage
index b0982a11087..031589c965a 100644
--- a/extensions/markdown/syntaxes/markdown.tmLanguage
+++ b/extensions/markdown/syntaxes/markdown.tmLanguage
@@ -48,10 +48,10 @@
include
- #raw_block
-
-
- include
+
+
+
+
#fenced_code_block_css
@@ -202,6 +202,14 @@
include
#fenced_code_block_csharp
+
+ include
+ #fenced_code_block_unknown
+
+
+ include
+ #raw_block
+
include
#link-def
@@ -538,156 +546,480 @@
(^|\G)(?!\s*$|#|[ ]{0,3}((([*_][ ]{0,2}\2){2,}[ \t]*$\n?)|([*+-]([ ]{1,3}|\t)))|\s*\[.+?\]:|>)
- raw_block
-
- begin
- (^|\G)([ ]{4}|\t)
- name
- markup.raw.block.markdown
- while
- (^|\G)([ ]{4}|\t)
-
+
+
+
+
+
+
+
+
+
fenced_code_block_css
begin
- (^|\G)\s*(([`~]){3,})\s*(css|css.erb)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((css|css.erb)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.css
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.css
+
+
fenced_code_block_basic
begin
- (^|\G)\s*(([`~]){3,})\s*(html|htm|shtml|xhtml|inc|tmpl|tpl)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((html|htm|shtml|xhtml|inc|tmpl|tpl)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- text.html.basic
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ text.html.basic
+
+
fenced_code_block_ini
begin
- (^|\G)\s*(([`~]){3,})\s*(ini|conf)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((ini|conf)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.ini
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.ini
+
+
fenced_code_block_java
begin
- (^|\G)\s*(([`~]){3,})\s*(java|bsh)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((java|bsh)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.java
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.java
+
+
fenced_code_block_lua
begin
- (^|\G)\s*(([`~]){3,})\s*(lua)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((lua)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.lua
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.lua
+
+
fenced_code_block_makefile
begin
- (^|\G)\s*(([`~]){3,})\s*(Makefile|makefile|GNUmakefile|OCamlMakefile)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((Makefile|makefile|GNUmakefile|OCamlMakefile)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.makefile
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.makefile
+
+
fenced_code_block_perl
begin
- (^|\G)\s*(([`~]){3,})\s*(perl|pl|pm|pod|t|PL|psgi|vcl)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((perl|pl|pm|pod|t|PL|psgi|vcl)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.perl
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.perl
+
+
fenced_code_block_r
begin
- (^|\G)\s*(([`~]){3,})\s*(R|r|s|S|Rprofile)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((R|r|s|S|Rprofile)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.r
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.r
+
+
fenced_code_block_ruby
begin
- (^|\G)\s*(([`~]){3,})\s*(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+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((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
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.ruby
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.ruby
+
+
@@ -706,477 +1038,1562 @@
scenarios, and also appears to be consistent with the approach that GitHub takes.
begin
- (^|\G)\s*(([`~]){3,})\s*(php|php3|php4|php5|phpt|phtml|aw|ctp)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((php|php3|php4|php5|phpt|phtml|aw|ctp)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- comment
-
- Left to its own devices, the PHP grammar will match HTML as a combination of operators
- and constants. Therefore, HTML must take precedence over PHP in order to get proper
- syntax highlighting.
-
- include
- text.html.basic
-
-
- include
- text.html.php#language
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ comment
+
+
+
+ Left to its own devices, the PHP grammar will match HTML as a combination of operators
+ and constants. Therefore, HTML must take precedence over PHP in order to get proper
+ syntax highlighting.
+
+ include
+ text.html.basic
+
+
+ include
+ text.html.php#language
+
+
fenced_code_block_sql
begin
- (^|\G)\s*(([`~]){3,})\s*(sql|ddl|dml)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((sql|ddl|dml)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.sql
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.sql
+
+
fenced_code_block_vs_net
begin
- (^|\G)\s*(([`~]){3,})\s*(vb)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((vb)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.asp.vb.net
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.asp.vb.net
+
+
fenced_code_block_xml
begin
- (^|\G)\s*(([`~]){3,})\s*(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- text.xml
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ text.xml
+
+
fenced_code_block_xsl
begin
- (^|\G)\s*(([`~]){3,})\s*(xsl|xslt)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((xsl|xslt)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- text.xml.xsl
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ text.xml.xsl
+
+
fenced_code_block_yaml
begin
- (^|\G)\s*(([`~]){3,})\s*(yaml|yml)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((yaml|yml)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.yaml
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.yaml
+
+
fenced_code_block_dosbatch
begin
- (^|\G)\s*(([`~]){3,})\s*(bat|batch)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((bat|batch)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.dosbatch
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.dosbatch
+
+
fenced_code_block_clojure
begin
- (^|\G)\s*(([`~]){3,})\s*(clj|cljs|clojure)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((clj|cljs|clojure)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.clojure
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.clojure
+
+
fenced_code_block_coffee
begin
- (^|\G)\s*(([`~]){3,})\s*(coffee|Cakefile|coffee.erb)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((coffee|Cakefile|coffee.erb)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.coffee
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.coffee
+
+
fenced_code_block_c
begin
- (^|\G)\s*(([`~]){3,})\s*(c|h)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((c|h)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.c
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.c
+
+
fenced_code_block_diff
begin
- (^|\G)\s*(([`~]){3,})\s*(patch|diff|rej)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((patch|diff|rej)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.diff
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.diff
+
+
fenced_code_block_dockerfile
begin
- (^|\G)\s*(([`~]){3,})\s*(dockerfile|Dockerfile)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((dockerfile|Dockerfile)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.dockerfile
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.dockerfile
+
+
fenced_code_block_git_commit
begin
- (^|\G)\s*(([`~]){3,})\s*(COMMIT_EDITMSG|MERGE_MSG)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((COMMIT_EDITMSG|MERGE_MSG)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- text.git-commit
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ text.git-commit
+
+
fenced_code_block_git_rebase
begin
- (^|\G)\s*(([`~]){3,})\s*(git-rebase-todo)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((git-rebase-todo)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- text.git-rebase
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ text.git-rebase
+
+
fenced_code_block_groovy
begin
- (^|\G)\s*(([`~]){3,})\s*(groovy|gvy)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((groovy|gvy)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.groovy
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.groovy
+
+
fenced_code_block_jade
begin
- (^|\G)\s*(([`~]){3,})\s*(jade)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((jade)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- text.jade
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ text.jade
+
+
fenced_code_block_js
begin
- (^|\G)\s*(([`~]){3,})\s*(js|jsx|javascript)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((js|jsx|javascript)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.js
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.js
+
+
fenced_code_block_js_regexp
begin
- (^|\G)\s*(([`~]){3,})\s*(regexp)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((regexp)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.js.regexp
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.js.regexp
+
+
fenced_code_block_json
begin
- (^|\G)\s*(([`~]){3,})\s*(json|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((json|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.json
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.json
+
+
fenced_code_block_less
begin
- (^|\G)\s*(([`~]){3,})\s*(less)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((less)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.css.less
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.css.less
+
+
fenced_code_block_objc
begin
- (^|\G)\s*(([`~]){3,})\s*(objectivec|mm|objc|obj-c|m|h)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((objectivec|mm|objc|obj-c|m|h)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.objc
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.objc
+
+
fenced_code_block_perl6
begin
- (^|\G)\s*(([`~]){3,})\s*(perl6|p6|pl6|pm6|nqp)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((perl6|p6|pl6|pm6|nqp)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.perl.6
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.perl.6
+
+
fenced_code_block_powershell
begin
- (^|\G)\s*(([`~]){3,})\s*(powershell|ps1|psm1|psd1)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((powershell|ps1|psm1|psd1)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.powershell
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.powershell
+
+
fenced_code_block_python
begin
- (^|\G)\s*(([`~]){3,})\s*(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.python
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.python
+
+
fenced_code_block_regexp_python
begin
- (^|\G)\s*(([`~]){3,})\s*(re)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((re)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.regexp.python
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.regexp.python
+
+
fenced_code_block_shell
begin
- (^|\G)\s*(([`~]){3,})\s*(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.shell
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.shell
+
+
fenced_code_block_ts
begin
- (^|\G)\s*(([`~]){3,})\s*(typescript|ts)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((typescript|ts)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.ts
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.ts
+
+
fenced_code_block_tsx
begin
- (^|\G)\s*(([`~]){3,})\s*(tsx)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((tsx)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.tsx
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.tsx
+
+
fenced_code_block_csharp
begin
- (^|\G)\s*(([`~]){3,})\s*(cs|csharp|c#)(\s+.*)?$
+ (^|\G)(\s*)([`~]{3,})\s*((cs|csharp|c#)(\s+.*)?$)
name
markup.fenced_code.block.markdown
- while
- (^|\G)(?!\s*\2\3*\s*$)
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 5
+
+ name
+ fenced_code.block.language
+
+ 6
+
+ name
+ fenced_code.block.language.attributes
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
patterns
- include
- source.cs
+ begin
+ (^|\G)(\s*)(.*)
+ while
+ (^|\G)(?!\s*([`~]{3,})\s*$)
+ patterns
+
+
+ include
+ source.cs
+
+
+ fenced_code_block_unknown
+
+ name
+ markup.fenced_code.block.markdown
+ begin
+ (^|\G)(\s*)([`~]{3,})\s*(.*)?$
+ end
+ (^|\G)(\2|\s{0,3})(\3)\s*$
+ beginCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+ 4
+
+ name
+ fenced_code.block.language
+
+
+ endCaptures
+
+ 3
+
+ name
+ punctuation.definition.markdown
+
+
+
+ raw_block
+
+ begin
+ (^|\G)([ ]{4}|\t)
+ name
+ markup.raw.block.markdown
+ while
+ (^|\G)([ ]{4}|\t)
+
separator
match
diff --git a/extensions/markdown/test/colorize-results/test_md.json b/extensions/markdown/test/colorize-results/test_md.json
index be3e30c55c0..ffb4d5d66e8 100644
--- a/extensions/markdown/test/colorize-results/test_md.json
+++ b/extensions/markdown/test/colorize-results/test_md.json
@@ -1827,7 +1827,7 @@
},
{
"c": "~~~",
- "t": "markdown.meta.paragraph",
+ "t": "block.definition.fenced_code.markdown.markup.punctuation",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -1838,7 +1838,7 @@
},
{
"c": "// Markdown extra adds un-indented code blocks too",
- "t": "markdown.meta.paragraph",
+ "t": "block.fenced_code.markdown.markup",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -1848,74 +1848,8 @@
}
},
{
- "c": "if (this",
- "t": "markdown.meta.paragraph",
- "r": {
- "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
- "light_plus": ".vs .token rgb(0, 0, 0)",
- "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
- "light_vs": ".vs .token rgb(0, 0, 0)",
- "hc_black": ".hc-black .token rgb(255, 255, 255)"
- }
- },
- {
- "c": "_",
- "t": "definition.italic.markdown.markup.meta.paragraph.punctuation",
- "r": {
- "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.markup.italic rgb(212, 212, 212)",
- "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.markup.italic rgb(0, 0, 0)",
- "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.markup.italic rgb(212, 212, 212)",
- "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.markup.italic rgb(0, 0, 0)",
- "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.markup.italic rgb(255, 255, 255)"
- }
- },
- {
- "c": "is",
- "t": "italic.markdown.markup.meta.paragraph",
- "r": {
- "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.markup.italic rgb(212, 212, 212)",
- "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.markup.italic rgb(0, 0, 0)",
- "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.markup.italic rgb(212, 212, 212)",
- "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.markup.italic rgb(0, 0, 0)",
- "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.markup.italic rgb(255, 255, 255)"
- }
- },
- {
- "c": "_",
- "t": "definition.italic.markdown.markup.meta.paragraph.punctuation",
- "r": {
- "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.markup.italic rgb(212, 212, 212)",
- "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.markup.italic rgb(0, 0, 0)",
- "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.markup.italic rgb(212, 212, 212)",
- "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.markup.italic rgb(0, 0, 0)",
- "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.markup.italic rgb(255, 255, 255)"
- }
- },
- {
- "c": "more_code == true ",
- "t": "markdown.meta.paragraph",
- "r": {
- "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
- "light_plus": ".vs .token rgb(0, 0, 0)",
- "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
- "light_vs": ".vs .token rgb(0, 0, 0)",
- "hc_black": ".hc-black .token rgb(255, 255, 255)"
- }
- },
- {
- "c": "&&",
- "t": "markdown.meta.other.paragraph.valid-ampersand",
- "r": {
- "dark_plus": ".vs-dark .token rgb(212, 212, 212)",
- "light_plus": ".vs .token rgb(0, 0, 0)",
- "dark_vs": ".vs-dark .token rgb(212, 212, 212)",
- "light_vs": ".vs .token rgb(0, 0, 0)",
- "hc_black": ".hc-black .token rgb(255, 255, 255)"
- }
- },
- {
- "c": " !indented) {",
- "t": "markdown.meta.paragraph",
+ "c": "if (this_is_more_code == true && !indented) {",
+ "t": "block.fenced_code.markdown.markup",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -1926,7 +1860,7 @@
},
{
"c": " // tild wrapped code blocks, also not indented",
- "t": "markdown.meta.paragraph",
+ "t": "block.fenced_code.markdown.markup",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -1937,7 +1871,7 @@
},
{
"c": "}",
- "t": "markdown.meta.paragraph",
+ "t": "block.fenced_code.markdown.markup",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -1948,7 +1882,7 @@
},
{
"c": "~~~",
- "t": "markdown.meta.paragraph",
+ "t": "block.definition.fenced_code.markdown.markup.punctuation",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -2595,4 +2529,4 @@
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
}
-]
\ No newline at end of file
+]