grammars/etc.json in github-linguist-7.10.0 vs grammars/etc.json in github-linguist-7.11.0

- old
+ new

@@ -63,16 +63,24 @@ { "name": "punctuation.definition.bracket.round.parenthesis.end", "match": "\\)" }, { - "name": "punctuation.definition.bracket.angle.begin", + "name": "punctuation.definition.bracket.angle.ascii.begin", "match": "\u003c" }, { - "name": "punctuation.definition.bracket.angle.end", + "name": "punctuation.definition.bracket.angle.ascii.end", "match": "\u003e" + }, + { + "name": "punctuation.definition.bracket.angle.unicode.begin", + "match": "⟨" + }, + { + "name": "punctuation.definition.bracket.angle.unicode.end", + "match": "⟩" } ] }, "colon": { "name": "punctuation.delimiter.separator.colon", @@ -150,10 +158,341 @@ }, "ellipsis": { "name": "keyword.operator.punctuation.ellipsis.splat.range.spread.rest", "match": "\\.{3}|…" }, + "email": { + "patterns": [ + { + "include": "#emailBracketed" + }, + { + "include": "#emailQuoted" + }, + { + "include": "#emailUnquoted" + } + ] + }, + "emailBracketed": { + "patterns": [ + { + "name": "meta.email-address.bracketed.ascii.angle-brackets", + "match": "(\u003c)\\s*([^\u003e@\\s]+@[^\u003e@\\s]+)\\s*(\u003e)", + "captures": { + "1": { + "patterns": [ + { + "include": "#bracket" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#emailInnards" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#bracket" + } + ] + } + } + }, + { + "name": "meta.email-address.bracketed.unicode.angle-brackets", + "match": "(⟨)\\s*([^⟩@\\s]+@[^⟩@\\s]+)\\s*(⟩)", + "captures": { + "1": { + "patterns": [ + { + "include": "#bracket" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#emailInnards" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#bracket" + } + ] + } + } + }, + { + "name": "meta.email-address.bracketed.guillemots", + "match": "(«)\\s*([^»@\\s]+@[^»@\\s]+)\\s*(»)", + "captures": { + "1": { + "patterns": [ + { + "include": "#bracket" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#emailInnards" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#bracket" + } + ] + } + } + }, + { + "name": "meta.email-address.bracketed.round-brackets", + "match": "(\\()\\s*([^\\)@\\s]+@[^\\)@\\s]+)\\s*(\\))", + "captures": { + "1": { + "patterns": [ + { + "include": "#bracket" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#emailInnards" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#bracket" + } + ] + } + } + }, + { + "name": "meta.email-address.bracketed.curly-brackets", + "match": "({)\\s*([^}@\\s]+@[^}@\\s]+)\\s*(})", + "captures": { + "1": { + "patterns": [ + { + "include": "#bracket" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#emailInnards" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#bracket" + } + ] + } + } + }, + { + "name": "meta.email-address.bracketed.square-brackets", + "match": "(\\[)\\s*([^\\]@\\s]+@[^\\]@\\s]+)\\s*(\\])", + "captures": { + "1": { + "patterns": [ + { + "include": "#bracket" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#emailInnards" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#bracket" + } + ] + } + } + } + ] + }, + "emailInnards": { + "name": "constant.other.reference.link.underline.email", + "match": "(?:\\G|^|(?\u003c=\\n)).+", + "captures": { + "0": { + "patterns": [ + { + "match": "\\G([^@]*)(@)(.*)", + "captures": { + "1": { + "name": "meta.local-part" + }, + "2": { + "name": "punctuation.separator.at-sign.email" + }, + "3": { + "name": "meta.domain" + } + } + } + ] + } + } + }, + "emailQuoted": { + "patterns": [ + { + "name": "meta.email-address.quoted.ascii.double-quotes", + "match": "(\")\\s*([^\"@\\s]+@[^\"@\\s]+)\\s*(\")", + "captures": { + "0": { + "name": "string.quoted.double" + }, + "1": { + "name": "punctuation.definition.string.begin.email-address" + }, + "2": { + "patterns": [ + { + "include": "#emailInnards" + } + ] + }, + "3": { + "name": "punctuation.definition.string.end.email-address" + } + } + }, + { + "name": "meta.email-address.quoted.unicode.double-quotes", + "match": "(“)\\s*([^”@\\s]+@[^”@\\s]+)\\s*(”)", + "captures": { + "0": { + "name": "string.quoted.double" + }, + "1": { + "name": "punctuation.definition.string.begin.email-address" + }, + "2": { + "patterns": [ + { + "include": "#emailInnards" + } + ] + }, + "3": { + "name": "punctuation.definition.string.end.email-address" + } + } + }, + { + "name": "meta.email-address.quoted.unicode.single-quotes", + "match": "(‘)\\s*([^’@\\s]+@[^’@\\s]+)\\s*(’)", + "captures": { + "0": { + "name": "string.quoted.single" + }, + "1": { + "name": "punctuation.definition.string.begin.email-address" + }, + "2": { + "patterns": [ + { + "include": "#emailInnards" + } + ] + }, + "3": { + "name": "punctuation.definition.string.end.email-address" + } + } + }, + { + "name": "meta.email-address.quoted.backticks", + "match": "(`)\\s*([^`@\\s]+@[^`@\\s]+)\\s*(`)", + "captures": { + "0": { + "name": "string.quoted.template.backticks" + }, + "1": { + "name": "punctuation.definition.string.begin.email-address" + }, + "2": { + "patterns": [ + { + "include": "#emailInnards" + } + ] + }, + "3": { + "name": "punctuation.definition.string.end.email-address" + } + } + }, + { + "name": "meta.email-address.quoted.single-quotes", + "match": "(`|')\\s*([^'@\\s]+@[^'@\\s]+)\\s*(')", + "captures": { + "0": { + "name": "string.quoted.single" + }, + "1": { + "name": "punctuation.definition.string.begin.email-address" + }, + "2": { + "patterns": [ + { + "include": "#emailInnards" + } + ] + }, + "3": { + "name": "punctuation.definition.string.end.email-address" + } + } + } + ] + }, + "emailUnquoted": { + "name": "meta.email-address.unquoted", + "match": "(?x)\n((?!\\.) (?:[^\\[\\(\u003c⟨«\"'\\s@.]|\\.(?!\\.))++ @\n([^\\[\\(\u003c⟨«\"'\\s@.]+?\\.(?=[^\\.\\s])(?:[^\\[\\(\u003c⟨«\"'\\s@.]|\\.(?!\\.))++))", + "captures": { + "1": { + "name": "string.unquoted.email-address", + "patterns": [ + { + "include": "#emailInnards" + } + ] + } + } + }, "eql": { "name": "keyword.operator.assignment.key-value.equals-sign", "match": "=" }, "esc": { @@ -454,9 +793,13 @@ { "name": "keyword.operator.assignment.arithmetic.subtraction.subtract.minus", "match": "[-֊־᐀᠆‐-―⸗⸚⸺⸻⹀〜〰゠︱︲﹘﹣-]=" } ] + }, + "semi": { + "name": "punctuation.delimiter.separator.semicolon", + "match": ";" }, "str": { "patterns": [ { "include": "#strDouble"