grammars/source.litcoffee.json in github-linguist-5.3.3 vs grammars/source.litcoffee.json in github-linguist-6.0.0
- old
+ new
@@ -1,31 +1,23 @@
{
- "comment": "CoffeeScript (Literate)",
- "fileTypes": [
- "litcoffee",
- "litcoffee.erb",
- "coffee.md"
- ],
"name": "CoffeeScript (Literate)",
"scopeName": "source.litcoffee",
- "firstLineMatch": "(?x)\n# Hashbang\n^\\#!.*(?:\\s|\\/)\n coffee(?:\\s.+?)?\\s(?:-l|--literate)\n(?:\\s|$)\n|\n# Modeline\n(?i:\n # Emacs\n -\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n litcoffee\n (?=[\\s;]|(?<![-*])-\\*-).*?-\\*-\n |\n # Vim\n (?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s*set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n litcoffee\n (?=\\s|:|$)\n)",
"patterns": [
{
+ "name": "markup.raw.block.markdown",
"begin": "^(?=([ ]{4}|\\t)(?!$))",
"end": "^(?!([ ]{4}|\\t))",
- "name": "markup.raw.block.markdown",
"patterns": [
{
"include": "#block_raw"
}
]
},
{
- "begin": "(?x)^\n(?= [ ]{0,3}>.\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?<marker>[-*_])([ ]{0,2}\\k<marker>){2,}[ \\t]*+$\n)",
- "comment": "We could also use an empty end match and set applyEndPatternLast, but then we must be sure that the begin pattern will only match stuff matched by the sub-patterns.",
- "end": "(?x)^\n(?! [ ]{0,3}>.\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?<marker>[-*_])([ ]{0,2}\\k<marker>){2,}[ \\t]*+$\n)",
"name": "meta.block-level.markdown",
+ "begin": "(?x)^\n(?= [ ]{0,3}\u003e.\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?\u003cmarker\u003e[-*_])([ ]{0,2}\\k\u003cmarker\u003e){2,}[ \\t]*+$\n)",
+ "end": "(?x)^\n(?! [ ]{0,3}\u003e.\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?\u003cmarker\u003e[-*_])([ ]{0,2}\\k\u003cmarker\u003e){2,}[ \\t]*+$\n)",
"patterns": [
{
"include": "#block_quote"
},
{
@@ -35,66 +27,78 @@
"include": "#separator"
}
]
},
{
+ "name": "markup.list.unnumbered.markdown",
"begin": "^[ ]{0,3}([*+-])(?=\\s)",
- "captures": {
- "1": {
- "name": "punctuation.definition.list_item.markdown"
- }
- },
"end": "^(?=\\S|[ ]{4,})|(?!\\G)",
- "name": "markup.list.unnumbered.markdown",
"patterns": [
{
"include": "#list-paragraph"
}
- ]
- },
- {
- "begin": "^[ ]{0,3}([0-9]+\\.)(?=\\s)",
+ ],
"captures": {
"1": {
"name": "punctuation.definition.list_item.markdown"
}
- },
- "end": "^(?=\\S|[ ]{4,})|(?!\\G)",
+ }
+ },
+ {
"name": "markup.list.numbered.markdown",
+ "begin": "^[ ]{0,3}([0-9]+\\.)(?=\\s)",
+ "end": "^(?=\\S|[ ]{4,})|(?!\\G)",
"patterns": [
{
"include": "#list-paragraph"
}
- ]
+ ],
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.list_item.markdown"
+ }
+ }
},
{
- "begin": "^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)(?!.*?</\\1>)",
- "comment": "Markdown formatting is disabled inside block-level tags.",
- "end": "(?<=^</\\1>$\\n)",
"name": "meta.disable-markdown",
+ "begin": "^(?=\u003c(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)(?!.*?\u003c/\\1\u003e)",
+ "end": "(?\u003c=^\u003c/\\1\u003e$\\n)",
"patterns": [
{
"include": "text.html.basic"
}
]
},
{
- "begin": "^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)",
- "comment": "Same rule but for one line disables.",
- "end": "$\\n?",
"name": "meta.disable-markdown",
+ "begin": "^(?=\u003c(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)",
+ "end": "$\\n?",
"patterns": [
{
"include": "text.html.basic"
}
]
},
{
+ "name": "meta.link.reference.def.markdown",
+ "match": "(?x)\n\\s* # Leading whitespace\n(\\[)(.+?)(\\])(:) # Reference name\n[ \\t]* # Optional whitespace\n(\u003c?)(\\S+?)(\u003e?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in quotes…\n | ((\").+?(\")) # or in parens.\n)? # Title is optional\n\\s* # Optional whitespace\n$",
"captures": {
"1": {
"name": "punctuation.definition.constant.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"
+ },
"2": {
"name": "constant.other.reference.link.markdown"
},
"3": {
"name": "punctuation.definition.constant.markdown"
@@ -114,88 +118,66 @@
"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"
}
- },
- "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 quotes…\n | ((\").+?(\")) # or in parens.\n)? # Title is optional\n\\s* # Optional whitespace\n$",
- "name": "meta.link.reference.def.markdown"
+ }
},
{
- "begin": "^(?=\\S)(?![=-]{3,}(?=$))",
- "end": "^(?:\\s*$|(?=[ ]{0,3}>.))|(?=[ \\t]*\\n)(?<=^===|^====|=====|^---|^----|-----)[ \\t]*\\n|(?=^#)",
"name": "meta.paragraph.markdown",
+ "begin": "^(?=\\S)(?![=-]{3,}(?=$))",
+ "end": "^(?:\\s*$|(?=[ ]{0,3}\u003e.))|(?=[ \\t]*\\n)(?\u003c=^===|^====|=====|^---|^----|-----)[ \\t]*\\n|(?=^#)",
"patterns": [
{
"include": "#inline"
},
{
"include": "text.html.basic"
},
{
+ "name": "markup.heading.1.markdown",
+ "match": "^(={3,})(?=[ \\t]*$)",
"captures": {
"1": {
"name": "punctuation.definition.heading.markdown"
}
- },
- "match": "^(={3,})(?=[ \\t]*$)",
- "name": "markup.heading.1.markdown"
+ }
},
{
+ "name": "markup.heading.2.markdown",
+ "match": "^(-{3,})(?=[ \\t]*$)",
"captures": {
"1": {
"name": "punctuation.definition.heading.markdown"
}
- },
- "match": "^(-{3,})(?=[ \\t]*$)",
- "name": "markup.heading.2.markdown"
+ }
}
]
}
],
"repository": {
"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"
+ "name": "meta.other.valid-ampersand.markdown",
+ "match": "\u0026(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)"
},
"block_quote": {
- "begin": "\\G[ ]{0,3}(>)(?!$)[ ]?",
- "beginCaptures": {
- "1": {
- "name": "punctuation.definition.blockquote.markdown"
- }
- },
- "comment": " We terminate the block quote when seeing an empty line, a separator or a line with leading > characters. The latter is to “reset” the quote level for quoted lines.",
- "end": "(?x)^\n(?= \\s*$\n| [ ]{0,3}(?<marker>[-*_])([ ]{0,2}\\k<marker>){2,}[ \\t]*+$\n| [ ]{0,3}>.\n)",
"name": "markup.quote.markdown",
+ "begin": "\\G[ ]{0,3}(\u003e)(?!$)[ ]?",
+ "end": "(?x)^\n(?= \\s*$\n| [ ]{0,3}(?\u003cmarker\u003e[-*_])([ ]{0,2}\\k\u003cmarker\u003e){2,}[ \\t]*+$\n| [ ]{0,3}\u003e.\n)",
"patterns": [
{
- "begin": "(?x)\\G\n(?= [ ]{0,3}>.\n)",
+ "begin": "(?x)\\G\n(?= [ ]{0,3}\u003e.\n)",
"end": "^",
"patterns": [
{
"include": "#block_quote"
}
]
},
{
- "applyEndPatternLast": 1,
- "begin": "(?x)\\G\n(?= ([ ]{4}|\\t)\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?<marker>[-*_])([ ]{0,2}\\k<marker>){2,}[ \\t]*+$\n)",
+ "begin": "(?x)\\G\n(?= ([ ]{4}|\\t)\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?\u003cmarker\u003e[-*_])([ ]{0,2}\\k\u003cmarker\u003e){2,}[ \\t]*+$\n)",
"end": "^",
"patterns": [
{
"include": "#block_raw"
},
@@ -203,50 +185,51 @@
"include": "#heading"
},
{
"include": "#separator"
}
- ]
+ ],
+ "applyEndPatternLast": true
},
{
- "begin": "(?x)\\G\n(?! $\n| [ ]{0,3}>.\n| ([ ]{4}|\\t)\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?<marker>[-*_])([ ]{0,2}\\k<marker>){2,}[ \\t]*+$\n)",
- "end": "$|(?<=\\n)",
+ "begin": "(?x)\\G\n(?! $\n| [ ]{0,3}\u003e.\n| ([ ]{4}|\\t)\n| [#]{1,6}\\s*+\n| [ ]{0,3}(?\u003cmarker\u003e[-*_])([ ]{0,2}\\k\u003cmarker\u003e){2,}[ \\t]*+$\n)",
+ "end": "$|(?\u003c=\\n)",
"patterns": [
{
"include": "#inline"
}
]
}
- ]
+ ],
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.blockquote.markdown"
+ }
+ }
},
"block_raw": {
"name": "markup.raw.block.markdown",
"patterns": [
{
"include": "#coffee_script"
}
]
},
"bold": {
- "begin": "(?x)\n(\\*\\*|__)(?=\\S) # Open\n(?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw> # 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 |\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)\\1). # Everything besides\n )++\n (?<=\\S)\\1 # Close\n)",
- "captures": {
- "1": {
- "name": "punctuation.definition.bold.markdown"
- }
- },
- "end": "(?<=\\S)(\\1)",
"name": "markup.bold.markdown",
+ "begin": "(?x)\n(\\*\\*|__)(?=\\S) # Open\n(?=\n (\n \u003c[^\u003e]*+\u003e # HTML tags\n | (?\u003craw\u003e`+)([^`]|(?!(?\u003c!`)\\k\u003craw\u003e(?!`))`)*+\\k\u003craw\u003e # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\-\u003e]?+ # Escapes\n | \\[\n (\n (?\u003csquare\u003e # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g\u003csquare\u003e*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n |\n ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n \u003c?(.*?)\u003e? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?\u003ctitle\u003e['\"])\n (.*?)\n \\k\u003ctitle\u003e\n )?\n \\)\n )\n )\n )\n | (?!(?\u003c=\\S)\\1). # Everything besides\n )++\n (?\u003c=\\S)\\1 # Close\n)",
+ "end": "(?\u003c=\\S)(\\1)",
"patterns": [
{
- "applyEndPatternLast": 1,
- "begin": "(?=<[^>]*?>)",
- "end": "(?<=>)",
+ "begin": "(?=\u003c[^\u003e]*?\u003e)",
+ "end": "(?\u003c=\u003e)",
"patterns": [
{
"include": "text.html.basic"
}
- ]
+ ],
+ "applyEndPatternLast": true
},
{
"include": "#escape"
},
{
@@ -280,70 +263,55 @@
"include": "#link-ref-literal"
},
{
"include": "#link-ref"
}
- ]
+ ],
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.bold.markdown"
+ }
+ }
},
"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-z/?\\$!])",
- "name": "meta.other.valid-bracket.markdown"
+ "name": "meta.other.valid-bracket.markdown",
+ "match": "\u003c(?![a-z/?\\$!])"
},
"coffee_script": {
"patterns": [
{
"include": "source.coffee"
}
]
},
"escape": {
- "match": "\\\\[-`*_#+.!(){}\\[\\]\\\\>]",
- "name": "constant.character.escape.markdown"
+ "name": "constant.character.escape.markdown",
+ "match": "\\\\[-`*_#+.!(){}\\[\\]\\\\\u003e]"
},
"heading": {
- "begin": "\\G(#{1,6})(?!#)\\s*(?=\\S)",
- "captures": {
- "1": {
- "name": "punctuation.definition.heading.markdown"
- }
- },
+ "name": "markup.heading.markdown",
"contentName": "entity.name.section.markdown",
+ "begin": "\\G(#{1,6})(?!#)\\s*(?=\\S)",
"end": "\\s*(#*)$\\n?",
- "name": "markup.heading.markdown",
"patterns": [
{
"include": "#inline"
}
- ]
+ ],
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
},
"image-inline": {
+ "name": "meta.image.inline.markdown",
+ "match": "(?x)\n\\! # Images start with !\n(\\[)((?\u003csquare\u003e[^\\[\\]\\\\]|\\\\.|\\[\\g\u003csquare\u003e*+\\])*+)(\\]) # Match the link text\n([ ])? # Space not allowed\n(\\() # Opening paren for url\n(\u003c?)(\\S+?)(\u003e?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in quotes.\n)? # Title is optional\n\\s* # Optional whitespace\n(\\))",
"captures": {
"1": {
"name": "punctuation.definition.string.begin.markdown"
},
- "2": {
- "name": "string.other.link.description.markdown"
- },
- "3": {
- "name": "punctuation.definition.string.end.markdown"
- },
- "5": {
- "name": "invalid.illegal.whitespace.markdown"
- },
- "6": {
- "name": "punctuation.definition.metadata.markdown"
- },
- "7": {
- "name": "punctuation.definition.link.markdown"
- },
- "8": {
- "name": "markup.underline.link.image.markdown"
- },
- "9": {
- "name": "punctuation.definition.link.markdown"
- },
"10": {
"name": "string.other.link.description.title.markdown"
},
"11": {
"name": "punctuation.definition.string.markdown"
@@ -360,16 +328,37 @@
"15": {
"name": "punctuation.definition.string.markdown"
},
"16": {
"name": "punctuation.definition.metadata.markdown"
+ },
+ "2": {
+ "name": "string.other.link.description.markdown"
+ },
+ "3": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "5": {
+ "name": "invalid.illegal.whitespace.markdown"
+ },
+ "6": {
+ "name": "punctuation.definition.metadata.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "8": {
+ "name": "markup.underline.link.image.markdown"
+ },
+ "9": {
+ "name": "punctuation.definition.link.markdown"
}
- },
- "match": "(?x)\n\\! # Images start with !\n(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\]) # Match the link text\n([ ])? # Space not allowed\n(\\() # Opening paren for url\n(<?)(\\S+?)(>?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in quotes.\n)? # Title is optional\n\\s* # Optional whitespace\n(\\))",
- "name": "meta.image.inline.markdown"
+ }
},
"image-ref": {
+ "name": "meta.image.reference.markdown",
+ "match": "\\!(\\[)((?\u003csquare\u003e[^\\[\\]\\\\]|\\\\.|\\[\\g\u003csquare\u003e*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",
"captures": {
"1": {
"name": "punctuation.definition.string.begin.markdown"
},
"2": {
@@ -385,13 +374,11 @@
"name": "constant.other.reference.link.markdown"
},
"7": {
"name": "punctuation.definition.constant.markdown"
}
- },
- "match": "\\!(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",
- "name": "meta.image.reference.markdown"
+ }
},
"inline": {
"patterns": [
{
"include": "#escape"
@@ -436,28 +423,23 @@
"include": "#link-ref"
}
]
},
"italic": {
- "begin": "(?x)\n(\\*|_)(?=\\S) # Open\n(?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw> # 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 |\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 | \\1\\1 # Must be bold closer\n | (?!(?<=\\S)\\1). # Everything besides\n )++\n (?<=\\S)\\1 # Close\n)",
- "captures": {
- "1": {
- "name": "punctuation.definition.italic.markdown"
- }
- },
- "end": "(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",
"name": "markup.italic.markdown",
+ "begin": "(?x)\n(\\*|_)(?=\\S) # Open\n(?=\n (\n \u003c[^\u003e]*+\u003e # HTML tags\n | (?\u003craw\u003e`+)([^`]|(?!(?\u003c!`)\\k\u003craw\u003e(?!`))`)*+\\k\u003craw\u003e # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\-\u003e]?+ # Escapes\n | \\[\n (\n (?\u003csquare\u003e # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g\u003csquare\u003e*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n |\n ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n \u003c?(.*?)\u003e? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?\u003ctitle\u003e['\"])\n (.*?)\n \\k\u003ctitle\u003e\n )?\n \\)\n )\n )\n )\n | \\1\\1 # Must be bold closer\n | (?!(?\u003c=\\S)\\1). # Everything besides\n )++\n (?\u003c=\\S)\\1 # Close\n)",
+ "end": "(?\u003c=\\S)(\\1)((?!\\1)|(?=\\1\\1))",
"patterns": [
{
- "applyEndPatternLast": 1,
- "begin": "(?=<[^>]*?>)",
- "end": "(?<=>)",
+ "begin": "(?=\u003c[^\u003e]*?\u003e)",
+ "end": "(?\u003c=\u003e)",
"patterns": [
{
"include": "text.html.basic"
}
- ]
+ ],
+ "applyEndPatternLast": true
},
{
"include": "#escape"
},
{
@@ -491,72 +473,58 @@
"include": "#link-ref-literal"
},
{
"include": "#link-ref"
}
- ]
+ ],
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.italic.markdown"
+ }
+ }
},
"line-break": {
- "match": " {2,}$",
- "name": "meta.dummy.line-break"
+ "name": "meta.dummy.line-break",
+ "match": " {2,}$"
},
"link-email": {
+ "name": "meta.link.email.lt-gt.markdown",
+ "match": "(\u003c)((?:mailto:)?[-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(\u003e)",
"captures": {
"1": {
"name": "punctuation.definition.link.markdown"
},
"2": {
"name": "markup.underline.link.markdown"
},
"4": {
"name": "punctuation.definition.link.markdown"
}
- },
- "match": "(<)((?:mailto:)?[-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(>)",
- "name": "meta.link.email.lt-gt.markdown"
+ }
},
"link-inet": {
+ "name": "meta.link.inet.markdown",
+ "match": "(\u003c)((?:https?|ftp)://.*?)(\u003e)",
"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": {
+ "name": "meta.link.inline.markdown",
+ "match": "(?x)\n(\\[)((?\u003csquare\u003e[^\\[\\]\\\\]|\\\\.|\\[\\g\u003csquare\u003e*+\\])*+)(\\]) # Match the link text.\n([ ])? # Space not allowed\n(\\() # Opening paren for url\n(\u003c?)(.*?)(\u003e?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in quotes.\n)? # Title is optional\n\\s* # Optional whitespace\n(\\))",
"captures": {
"1": {
"name": "punctuation.definition.string.begin.markdown"
},
- "2": {
- "name": "string.other.link.title.markdown"
- },
- "4": {
- "name": "punctuation.definition.string.end.markdown"
- },
- "5": {
- "name": "invalid.illegal.whitespace.markdown"
- },
- "6": {
- "name": "punctuation.definition.metadata.markdown"
- },
- "7": {
- "name": "punctuation.definition.link.markdown"
- },
- "8": {
- "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"
@@ -573,16 +541,37 @@
"15": {
"name": "punctuation.definition.string.end.markdown"
},
"16": {
"name": "punctuation.definition.metadata.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "5": {
+ "name": "invalid.illegal.whitespace.markdown"
+ },
+ "6": {
+ "name": "punctuation.definition.metadata.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "8": {
+ "name": "markup.underline.link.markdown"
+ },
+ "9": {
+ "name": "punctuation.definition.link.markdown"
}
- },
- "match": "(?x)\n(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\]) # Match the link text.\n([ ])? # Space not allowed\n(\\() # Opening paren for url\n(<?)(.*?)(>?) # The url\n[ \\t]* # Optional whitespace\n(?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in quotes.\n)? # Title is optional\n\\s* # Optional whitespace\n(\\))",
- "name": "meta.link.inline.markdown"
+ }
},
"link-ref": {
+ "name": "meta.link.reference.markdown",
+ "match": "(\\[)((?\u003csquare\u003e[^\\[\\]\\\\]|\\\\.|\\[\\g\u003csquare\u003e*+\\])*+)(\\])[ ]?(\\[)([^\\]]*+)(\\])",
"captures": {
"1": {
"name": "punctuation.definition.string.begin.markdown"
},
"2": {
@@ -598,15 +587,15 @@
"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": {
+ "name": "meta.link.reference.literal.markdown",
+ "match": "(\\[)((?\u003csquare\u003e[^\\[\\]\\\\]|\\\\.|\\[\\g\u003csquare\u003e*+\\])*+)(\\])[ ]?(\\[)(\\])",
"captures": {
"1": {
"name": "punctuation.definition.string.begin.markdown"
},
"2": {
@@ -619,50 +608,47 @@
"name": "punctuation.definition.constant.begin.markdown"
},
"6": {
"name": "punctuation.definition.constant.end.markdown"
}
- },
- "match": "(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])",
- "name": "meta.link.reference.literal.markdown"
+ }
},
"list-paragraph": {
"patterns": [
{
+ "name": "meta.paragraph.list.markdown",
"begin": "\\G\\s+(?=\\S)",
"end": "^\\s*$",
- "name": "meta.paragraph.list.markdown",
"patterns": [
{
"include": "#inline"
},
{
+ "match": "^\\s*([*+-]|[0-9]+\\.)",
"captures": {
"1": {
"name": "punctuation.definition.list_item.markdown"
}
- },
- "comment": "Match the list punctuation",
- "match": "^\\s*([*+-]|[0-9]+\\.)"
+ }
}
]
}
]
},
"raw": {
+ "name": "markup.raw.inline.markdown",
+ "match": "(`+)([^`]|(?!(?\u003c!`)\\1(?!`))`)*+(\\1)",
"captures": {
"1": {
"name": "punctuation.definition.raw.markdown"
},
"3": {
"name": "punctuation.definition.raw.markdown"
}
- },
- "match": "(`+)([^`]|(?!(?<!`)\\1(?!`))`)*+(\\1)",
- "name": "markup.raw.inline.markdown"
+ }
},
"separator": {
- "match": "\\G[ ]{0,3}([-*_])([ ]{0,2}\\1){2,}[ \\t]*$\\n?",
- "name": "meta.separator.markdown"
+ "name": "meta.separator.markdown",
+ "match": "\\G[ ]{0,3}([-*_])([ ]{0,2}\\1){2,}[ \\t]*$\\n?"
}
}
-}
\ No newline at end of file
+}