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 +}