grammars/etc.json in github-linguist-7.11.1 vs grammars/etc.json in github-linguist-7.12.0
- old
+ new
@@ -1,987 +2 @@
-{
- "scopeName": "etc",
- "patterns": [
- {
- "include": "#comma"
- },
- {
- "include": "#comment"
- },
- {
- "include": "#esc"
- },
- {
- "include": "#float"
- },
- {
- "include": "#int"
- },
- {
- "include": "#str"
- },
- {
- "include": "#colon"
- },
- {
- "include": "#eql"
- },
- {
- "include": "#dot"
- }
- ],
- "repository": {
- "bareword": {
- "name": "string.unquoted.bareword",
- "match": "[^\"\\s][\\S]*"
- },
- "bool": {
- "name": "constant.logical.bool.boolean.${1:/downcase}",
- "match": "\\b(true|false|TRUE|FALSE)\\b"
- },
- "bracket": {
- "patterns": [
- {
- "name": "punctuation.definition.bracket.curly.brace.begin",
- "match": "\\{"
- },
- {
- "name": "punctuation.definition.bracket.curly.brace.end",
- "match": "\\}"
- },
- {
- "name": "punctuation.definition.bracket.square.begin",
- "match": "\\["
- },
- {
- "name": "punctuation.definition.bracket.square.end",
- "match": "\\]"
- },
- {
- "name": "punctuation.definition.bracket.round.parenthesis.begin",
- "match": "\\("
- },
- {
- "name": "punctuation.definition.bracket.round.parenthesis.end",
- "match": "\\)"
- },
- {
- "name": "punctuation.definition.bracket.angle.ascii.begin",
- "match": "\u003c"
- },
- {
- "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",
- "match": ":"
- },
- "comma": {
- "name": "punctuation.separator.delimiter.comma",
- "match": ","
- },
- "comment": {
- "patterns": [
- {
- "include": "#commentHash"
- }
- ]
- },
- "commentHash": {
- "name": "comment.line.number-sign",
- "begin": "#",
- "end": "$",
- "beginCaptures": {
- "0": {
- "name": "punctuation.definition.comment"
- }
- }
- },
- "commentSemi": {
- "name": "comment.line.semicolon",
- "begin": ";+",
- "end": "$",
- "beginCaptures": {
- "0": {
- "name": "punctuation.definition.comment"
- }
- }
- },
- "commentSlash": {
- "name": "comment.line.double-slash",
- "begin": "//",
- "end": "$",
- "beginCaptures": {
- "0": {
- "name": "punctuation.definition.comment"
- }
- }
- },
- "dash": {
- "name": "punctuation.delimiter.separator.dash.hyphen",
- "match": "-"
- },
- "dot": {
- "name": "punctuation.delimiter.separator.property.period.dot",
- "match": "\\."
- },
- "dotPair": {
- "name": "keyword.operator.punctuation.dots.splat.range.spread.rest",
- "match": "\\.\\.|‥"
- },
- "dotTrail": {
- "name": "punctuation.delimiter.separator.dotted.border.leader.dots",
- "match": "\\.{4,}"
- },
- "dots": {
- "patterns": [
- {
- "include": "#ellipsis"
- },
- {
- "include": "#dotPair"
- },
- {
- "include": "#dot"
- }
- ]
- },
- "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": {
- "name": "constant.character.escape.backslash",
- "match": "(\\\\).",
- "captures": {
- "1": {
- "name": "punctuation.definition.escape.backslash"
- }
- }
- },
- "float": {
- "patterns": [
- {
- "include": "#floatExp"
- },
- {
- "include": "#floatNoExp"
- }
- ]
- },
- "floatExp": {
- "name": "constant.numeric.float.real.decimal.dec.exponential.scientific",
- "match": "[-+]?(?:[0-9]*\\.[0-9]+|[0-9]+\\.)(?:[eE][-+]?[0-9]+)++"
- },
- "floatNoExp": {
- "name": "constant.numeric.float.real.decimal.dec",
- "match": "[-+]?(?:[0-9]*\\.[0-9]+|[0-9]+\\.)++"
- },
- "hex": {
- "name": "constant.numeric.integer.int.hexadecimal.hex",
- "match": "[-+]?[A-Fa-f0-9]+"
- },
- "hexNoSign": {
- "name": "constant.numeric.integer.int.hexadecimal.hex",
- "match": "[A-Fa-f0-9]+"
- },
- "int": {
- "patterns": [
- {
- "include": "#intExp"
- },
- {
- "include": "#intNoExp"
- }
- ]
- },
- "intExp": {
- "name": "constant.numeric.integer.int.decimal.dec.exponential.scientific",
- "match": "[-+]?[0-9]+[eE][-+]?[0-9]+"
- },
- "intNoExp": {
- "name": "constant.numeric.integer.int.decimal.dec",
- "match": "[-+]?[0-9]+"
- },
- "ip": {
- "name": "constant.numeric.other.ip-address",
- "match": "(?:\\d+\\.){3,}\\d+(?=\\s|$)",
- "captures": {
- "0": {
- "patterns": [
- {
- "include": "#dot"
- }
- ]
- }
- }
- },
- "kolon": {
- "name": "keyword.operator.assignment.key-value.colon",
- "match": ":"
- },
- "num": {
- "patterns": [
- {
- "include": "#float"
- },
- {
- "include": "#int"
- }
- ]
- },
- "op": {
- "patterns": [
- {
- "include": "#opBitAssign"
- },
- {
- "include": "#opMathAssign"
- },
- {
- "include": "#opBit"
- },
- {
- "include": "#opFix"
- },
- {
- "include": "#opCmp"
- },
- {
- "include": "#opLog"
- },
- {
- "include": "#opMath"
- }
- ]
- },
- "opBit": {
- "patterns": [
- {
- "name": "keyword.operator.bitwise.xor",
- "match": "\\^"
- },
- {
- "name": "keyword.operator.bitwise.not",
- "match": "~"
- },
- {
- "name": "keyword.operator.bitwise.and",
- "match": "\u0026"
- },
- {
- "name": "keyword.operator.bitwise.or",
- "match": "\\|"
- },
- {
- "name": "keyword.operator.bitwise.shift.left",
- "match": "\u003c\u003c"
- },
- {
- "name": "keyword.operator.bitwise.shift.right.unsigned",
- "match": "\u003e\u003e\u003e"
- },
- {
- "name": "keyword.operator.bitwise.shift.right.signed",
- "match": "\u003e\u003e"
- }
- ]
- },
- "opBitAssign": {
- "patterns": [
- {
- "name": "keyword.operator.assignment.bitwise.xor",
- "match": "\\^="
- },
- {
- "name": "keyword.operator.assignment.bitwise.not",
- "match": "~="
- },
- {
- "name": "keyword.operator.assignment.bitwise.and",
- "match": "\u0026="
- },
- {
- "name": "keyword.operator.assignment.bitwise.or",
- "match": "\\|="
- },
- {
- "name": "keyword.operator.assignment.bitwise.shift.left",
- "match": "\u003c\u003c="
- },
- {
- "name": "keyword.operator.assignment.bitwise.shift.right.unsigned",
- "match": "\u003e\u003e\u003e="
- },
- {
- "name": "keyword.operator.assignment.bitwise.shift.right.signed",
- "match": "\u003e\u003e="
- }
- ]
- },
- "opCmp": {
- "patterns": [
- {
- "name": "keyword.operator.logical.comparison.starship.spaceship",
- "match": "\u003c=\u003e"
- },
- {
- "name": "keyword.operator.logical.comparison.less-than-or-equal-to.lte",
- "match": "\u003c="
- },
- {
- "name": "keyword.operator.logical.comparison.less-than.lt",
- "match": "\u003c"
- },
- {
- "name": "keyword.operator.logical.comparison.greater-than-or-equal-to.gte",
- "match": "\u003e="
- },
- {
- "name": "keyword.operator.logical.comparison.greater-than.gt",
- "match": "\u003e"
- },
- {
- "name": "keyword.operator.logical.comparison.equal-to.equals.equal.eql.eq.strict",
- "match": "==="
- },
- {
- "name": "keyword.operator.logical.comparison.equal-to.equals.equal.eql.eq",
- "match": "=="
- },
- {
- "name": "keyword.operator.logical.comparison.not-equal-to.not-equal.unequal.neql.ne.strict",
- "match": "!=="
- },
- {
- "name": "keyword.operator.logical.comparison.not-equal-to.not-equal.unequal.neql.ne",
- "match": "!="
- }
- ]
- },
- "opFix": {
- "patterns": [
- {
- "name": "keyword.operator.increment",
- "match": "\\+{2}"
- },
- {
- "name": "keyword.operator.decrement",
- "match": "-{2}"
- }
- ]
- },
- "opLog": {
- "patterns": [
- {
- "name": "keyword.operator.logical.boolean.cast",
- "match": "!!"
- },
- {
- "name": "keyword.operator.logical.boolean.not.negation.negate",
- "match": "!"
- },
- {
- "name": "keyword.operator.logical.boolean.and",
- "match": "\u0026\u0026"
- },
- {
- "name": "keyword.operator.logical.boolean.or",
- "match": "\\|{2}"
- },
- {
- "name": "keyword.operator.logical.boolean.or.nullish",
- "match": "\\?{2}"
- }
- ]
- },
- "opMath": {
- "patterns": [
- {
- "name": "keyword.operator.arithmetic.exponentiation.exponent.exp.power",
- "match": "\\*{2}|\\^"
- },
- {
- "name": "keyword.operator.arithmetic.addition.add.plus",
- "match": "\\+"
- },
- {
- "name": "keyword.operator.arithmetic.multiplication.multiply.times",
- "match": "\\*"
- },
- {
- "name": "keyword.operator.arithmetic.division.divide",
- "match": "/"
- },
- {
- "name": "keyword.operator.arithmetic.remainder.modulo.modulus.mod",
- "match": "%"
- },
- {
- "name": "keyword.operator.arithmetic.subtraction.subtract.minus",
- "match": "[-֊־᐀᠆‐-―⸗⸚⸺⸻⹀〜〰゠︱︲﹘﹣-]"
- }
- ]
- },
- "opMathAssign": {
- "patterns": [
- {
- "name": "keyword.operator.assignment.arithmetic.exponentiation.exponent.exp.power",
- "match": "\\*{2}="
- },
- {
- "name": "keyword.operator.assignment.arithmetic.addition.add.plus",
- "match": "\\+="
- },
- {
- "name": "keyword.operator.assignment.arithmetic.multiplication.multiply.times",
- "match": "\\*="
- },
- {
- "name": "keyword.operator.assignment.arithmetic.division.divide",
- "match": "/="
- },
- {
- "name": "keyword.operator.assignment.arithmetic.remainder.modulo.modulus.mod",
- "match": "%="
- },
- {
- "name": "keyword.operator.assignment.arithmetic.subtraction.subtract.minus",
- "match": "[-֊־᐀᠆‐-―⸗⸚⸺⸻⹀〜〰゠︱︲﹘﹣-]="
- }
- ]
- },
- "semi": {
- "name": "punctuation.delimiter.separator.semicolon",
- "match": ";"
- },
- "str": {
- "patterns": [
- {
- "include": "#strDouble"
- },
- {
- "include": "#strSingle"
- }
- ]
- },
- "strDouble": {
- "name": "string.quoted.double",
- "begin": "\"",
- "end": "\"|(?=$)",
- "patterns": [
- {
- "include": "#esc"
- }
- ],
- "beginCaptures": {
- "0": {
- "name": "punctuation.definition.string.begin"
- }
- },
- "endCaptures": {
- "0": {
- "name": "punctuation.definition.string.end"
- }
- }
- },
- "strSingle": {
- "name": "string.quoted.single",
- "begin": "'",
- "end": "'|(?=$)",
- "patterns": [
- {
- "include": "#esc"
- }
- ],
- "beginCaptures": {
- "0": {
- "name": "punctuation.definition.string.begin"
- }
- },
- "endCaptures": {
- "0": {
- "name": "punctuation.definition.string.end"
- }
- }
- },
- "tab": {
- "patterns": [
- {
- "match": "^\\t+",
- "captures": {
- "0": {
- "patterns": [
- {
- "name": "punctuation.whitespace.leading.tab.hard-tab",
- "match": "\\t"
- }
- ]
- }
- }
- },
- {
- "match": "\\t+$",
- "captures": {
- "0": {
- "patterns": [
- {
- "name": "punctuation.whitespace.trailing.tab.hard-tab",
- "match": "\\t"
- }
- ]
- }
- }
- },
- {
- "name": "punctuation.whitespace.tab.hard-tab",
- "match": "\\t"
- }
- ]
- },
- "url": {
- "patterns": [
- {
- "match": "(?x)\n(\"|'|\\b)\n(\n\t# Protocol\n\t( https?\n\t| s?ftp\n\t| ftps\n\t| file\n\t| wss?\n\t| smb\n\t| git (?:\\+https?)?\n\t| ssh\n\t| rsync\n\t| afp\n\t| nfs\n\t| (?:x-)?man(?:-page)?\n\t| gopher\n\t| txmt\n\t| issue\n\t| atom\n\t) ://\n\t\n\t# Path specifier\n\t(?:\n\t\t(?! \\#\\w*\\#)\n\t\t(?: [-:\\@\\w.,~%+_/?=\u0026\\#;|!])\n\t)+\n\t\n\t# Don't include trailing punctuation\n\t(?\u003c![-.,?:\\#;])\n)\n(\\1)",
- "captures": {
- "1": {
- "name": "punctuation.definition.link.begin.url"
- },
- "2": {
- "name": "constant.other.reference.link.underline.$3.url"
- },
- "4": {
- "name": "punctuation.definition.link.end.url"
- }
- }
- },
- {
- "match": "(?x)\n(\"|'|\\b)\n(\n\tmailto (:)\n\t(?:\n\t\t(?! \\#\\w*\\#)\n\t\t(?: [-:@\\w.,~%+_/?=\u0026\\#;|!])\n\t)+\n\t(?\u003c![-.,?:\\#;])\n)\n(\\1)",
- "captures": {
- "1": {
- "name": "punctuation.definition.link.begin.url"
- },
- "2": {
- "name": "constant.other.reference.link.underline.mailto.url"
- },
- "3": {
- "name": "punctuation.separator.delimiter.scheme.url"
- },
- "4": {
- "name": "punctuation.definition.link.end.url"
- }
- }
- }
- ]
- },
- "version": {
- "name": "constant.other.version-string",
- "match": "(?x)\n(\"|'|\\b)\n([vV]?)\n(0 | [1-9]\\d*) (\\.)\n(0 | [1-9]\\d*) (\\.)\n(0 | [1-9]\\d*)\n(?:\n\t(-)\n\t(\n\t\t(?: 0\n\t\t| [1-9]\\d*\n\t\t| \\d*[a-zA-Z-][0-9a-zA-Z-]*\n\t\t)\n\t\t\n\t\t(?:\n\t\t\t\\.\n\t\t\t(?: 0\n\t\t\t| [1-9]\\d*\n\t\t\t| \\d*[a-zA-Z-][0-9a-zA-Z-]*\n\t\t\t)\n\t\t)*\n\t)\n)?\n(?:\n\t(\\+)\n\t(\n\t\t[0-9a-zA-Z-]+\n\t\t(?:\\.[0-9a-zA-Z-]+)*\n\t)\n)?\n(\\1)",
- "captures": {
- "1": {
- "name": "punctuation.definition.version-string.begin"
- },
- "10": {
- "name": "punctuation.delimiter.separator.plus"
- },
- "11": {
- "name": "meta.build-metadata",
- "patterns": [
- {
- "include": "#dot"
- }
- ]
- },
- "12": {
- "name": "punctuation.definition.version-string.end"
- },
- "2": {
- "name": "punctuation.definition.version-prefix"
- },
- "3": {
- "name": "meta.major.release-number"
- },
- "4": {
- "patterns": [
- {
- "include": "#dot"
- }
- ]
- },
- "5": {
- "name": "meta.minor.release-number"
- },
- "6": {
- "patterns": [
- {
- "include": "#dot"
- }
- ]
- },
- "7": {
- "name": "meta.patch.release-number"
- },
- "8": {
- "patterns": [
- {
- "include": "#dash"
- }
- ]
- },
- "9": {
- "name": "meta.prerelease.release-number",
- "patterns": [
- {
- "include": "#dot"
- }
- ]
- }
- }
- }
- }
-}
+{"scopeName":"etc","patterns":[{"include":"#comma"},{"include":"#comment"},{"include":"#esc"},{"include":"#float"},{"include":"#int"},{"include":"#str"},{"include":"#colon"},{"include":"#eql"},{"include":"#dot"}],"repository":{"bareword":{"name":"string.unquoted.bareword","match":"[^\"\\s][\\S]*"},"bool":{"name":"constant.logical.bool.boolean.${1:/downcase}","match":"\\b(true|false|TRUE|FALSE)\\b"},"bracket":{"patterns":[{"name":"punctuation.definition.bracket.curly.brace.begin","match":"\\{"},{"name":"punctuation.definition.bracket.curly.brace.end","match":"\\}"},{"name":"punctuation.definition.bracket.square.begin","match":"\\["},{"name":"punctuation.definition.bracket.square.end","match":"\\]"},{"name":"punctuation.definition.bracket.round.parenthesis.begin","match":"\\("},{"name":"punctuation.definition.bracket.round.parenthesis.end","match":"\\)"},{"name":"punctuation.definition.bracket.angle.ascii.begin","match":"\u003c"},{"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","match":":"},"comma":{"name":"punctuation.separator.delimiter.comma","match":","},"comment":{"patterns":[{"include":"#commentHash"}]},"commentHash":{"name":"comment.line.number-sign","begin":"#","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment"}}},"commentSemi":{"name":"comment.line.semicolon","begin":";+","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment"}}},"commentSlash":{"name":"comment.line.double-slash","begin":"//","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment"}}},"dash":{"name":"punctuation.delimiter.separator.dash.hyphen","match":"-"},"dot":{"name":"punctuation.delimiter.separator.property.period.dot","match":"\\."},"dotPair":{"name":"keyword.operator.punctuation.dots.splat.range.spread.rest","match":"\\.\\.|‥"},"dotTrail":{"name":"punctuation.delimiter.separator.dotted.border.leader.dots","match":"\\.{4,}"},"dots":{"patterns":[{"include":"#ellipsis"},{"include":"#dotPair"},{"include":"#dot"}]},"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":{"name":"constant.character.escape.backslash","match":"(\\\\).","captures":{"1":{"name":"punctuation.definition.escape.backslash"}}},"float":{"patterns":[{"include":"#floatExp"},{"include":"#floatNoExp"}]},"floatExp":{"name":"constant.numeric.float.real.decimal.dec.exponential.scientific","match":"[-+]?(?:[0-9]*\\.[0-9]+|[0-9]+\\.)(?:[eE][-+]?[0-9]+)++"},"floatNoExp":{"name":"constant.numeric.float.real.decimal.dec","match":"[-+]?(?:[0-9]*\\.[0-9]+|[0-9]+\\.)++"},"hex":{"name":"constant.numeric.integer.int.hexadecimal.hex","match":"[-+]?[A-Fa-f0-9]+"},"hexNoSign":{"name":"constant.numeric.integer.int.hexadecimal.hex","match":"[A-Fa-f0-9]+"},"int":{"patterns":[{"include":"#intExp"},{"include":"#intNoExp"}]},"intExp":{"name":"constant.numeric.integer.int.decimal.dec.exponential.scientific","match":"[-+]?[0-9]+[eE][-+]?[0-9]+"},"intNoExp":{"name":"constant.numeric.integer.int.decimal.dec","match":"[-+]?[0-9]+"},"ip":{"name":"constant.numeric.other.ip-address","match":"(?:\\d+\\.){3,}\\d+(?=\\s|$)","captures":{"0":{"patterns":[{"include":"#dot"}]}}},"kolon":{"name":"keyword.operator.assignment.key-value.colon","match":":"},"num":{"patterns":[{"include":"#float"},{"include":"#int"}]},"op":{"patterns":[{"include":"#opBitAssign"},{"include":"#opMathAssign"},{"include":"#opBit"},{"include":"#opFix"},{"include":"#opCmp"},{"include":"#opLog"},{"include":"#opMath"}]},"opBit":{"patterns":[{"name":"keyword.operator.bitwise.xor","match":"\\^"},{"name":"keyword.operator.bitwise.not","match":"~"},{"name":"keyword.operator.bitwise.and","match":"\u0026"},{"name":"keyword.operator.bitwise.or","match":"\\|"},{"name":"keyword.operator.bitwise.shift.left","match":"\u003c\u003c"},{"name":"keyword.operator.bitwise.shift.right.unsigned","match":"\u003e\u003e\u003e"},{"name":"keyword.operator.bitwise.shift.right.signed","match":"\u003e\u003e"}]},"opBitAssign":{"patterns":[{"name":"keyword.operator.assignment.bitwise.xor","match":"\\^="},{"name":"keyword.operator.assignment.bitwise.not","match":"~="},{"name":"keyword.operator.assignment.bitwise.and","match":"\u0026="},{"name":"keyword.operator.assignment.bitwise.or","match":"\\|="},{"name":"keyword.operator.assignment.bitwise.shift.left","match":"\u003c\u003c="},{"name":"keyword.operator.assignment.bitwise.shift.right.unsigned","match":"\u003e\u003e\u003e="},{"name":"keyword.operator.assignment.bitwise.shift.right.signed","match":"\u003e\u003e="}]},"opCmp":{"patterns":[{"name":"keyword.operator.logical.comparison.starship.spaceship","match":"\u003c=\u003e"},{"name":"keyword.operator.logical.comparison.less-than-or-equal-to.lte","match":"\u003c="},{"name":"keyword.operator.logical.comparison.less-than.lt","match":"\u003c"},{"name":"keyword.operator.logical.comparison.greater-than-or-equal-to.gte","match":"\u003e="},{"name":"keyword.operator.logical.comparison.greater-than.gt","match":"\u003e"},{"name":"keyword.operator.logical.comparison.equal-to.equals.equal.eql.eq.strict","match":"==="},{"name":"keyword.operator.logical.comparison.equal-to.equals.equal.eql.eq","match":"=="},{"name":"keyword.operator.logical.comparison.not-equal-to.not-equal.unequal.neql.ne.strict","match":"!=="},{"name":"keyword.operator.logical.comparison.not-equal-to.not-equal.unequal.neql.ne","match":"!="}]},"opFix":{"patterns":[{"name":"keyword.operator.increment","match":"\\+{2}"},{"name":"keyword.operator.decrement","match":"-{2}"}]},"opLog":{"patterns":[{"name":"keyword.operator.logical.boolean.cast","match":"!!"},{"name":"keyword.operator.logical.boolean.not.negation.negate","match":"!"},{"name":"keyword.operator.logical.boolean.and","match":"\u0026\u0026"},{"name":"keyword.operator.logical.boolean.or","match":"\\|{2}"},{"name":"keyword.operator.logical.boolean.or.nullish","match":"\\?{2}"}]},"opMath":{"patterns":[{"name":"keyword.operator.arithmetic.exponentiation.exponent.exp.power","match":"\\*{2}|\\^"},{"name":"keyword.operator.arithmetic.addition.add.plus","match":"\\+"},{"name":"keyword.operator.arithmetic.multiplication.multiply.times","match":"\\*"},{"name":"keyword.operator.arithmetic.division.divide","match":"/"},{"name":"keyword.operator.arithmetic.remainder.modulo.modulus.mod","match":"%"},{"name":"keyword.operator.arithmetic.subtraction.subtract.minus","match":"[-֊־᐀᠆‐-―⸗⸚⸺⸻⹀〜〰゠︱︲﹘﹣-]"}]},"opMathAssign":{"patterns":[{"name":"keyword.operator.assignment.arithmetic.exponentiation.exponent.exp.power","match":"\\*{2}="},{"name":"keyword.operator.assignment.arithmetic.addition.add.plus","match":"\\+="},{"name":"keyword.operator.assignment.arithmetic.multiplication.multiply.times","match":"\\*="},{"name":"keyword.operator.assignment.arithmetic.division.divide","match":"/="},{"name":"keyword.operator.assignment.arithmetic.remainder.modulo.modulus.mod","match":"%="},{"name":"keyword.operator.assignment.arithmetic.subtraction.subtract.minus","match":"[-֊־᐀᠆‐-―⸗⸚⸺⸻⹀〜〰゠︱︲﹘﹣-]="}]},"semi":{"name":"punctuation.delimiter.separator.semicolon","match":";"},"str":{"patterns":[{"include":"#strDouble"},{"include":"#strSingle"}]},"strDouble":{"name":"string.quoted.double","begin":"\"","end":"\"|(?=$)","patterns":[{"include":"#esc"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end"}}},"strSingle":{"name":"string.quoted.single","begin":"'","end":"'|(?=$)","patterns":[{"include":"#esc"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end"}}},"tab":{"patterns":[{"match":"^\\t+","captures":{"0":{"patterns":[{"name":"punctuation.whitespace.leading.tab.hard-tab","match":"\\t"}]}}},{"match":"\\t+$","captures":{"0":{"patterns":[{"name":"punctuation.whitespace.trailing.tab.hard-tab","match":"\\t"}]}}},{"name":"punctuation.whitespace.tab.hard-tab","match":"\\t"}]},"url":{"patterns":[{"match":"(?x)\n(\"|'|\\b)\n(\n\t# Protocol\n\t( https?\n\t| s?ftp\n\t| ftps\n\t| file\n\t| wss?\n\t| smb\n\t| git (?:\\+https?)?\n\t| ssh\n\t| rsync\n\t| afp\n\t| nfs\n\t| (?:x-)?man(?:-page)?\n\t| gopher\n\t| txmt\n\t| issue\n\t| atom\n\t) ://\n\t\n\t# Path specifier\n\t(?:\n\t\t(?! \\#\\w*\\#)\n\t\t(?: [-:\\@\\w.,~%+_/?=\u0026\\#;|!])\n\t)+\n\t\n\t# Don't include trailing punctuation\n\t(?\u003c![-.,?:\\#;])\n)\n(\\1)","captures":{"1":{"name":"punctuation.definition.link.begin.url"},"2":{"name":"constant.other.reference.link.underline.$3.url"},"4":{"name":"punctuation.definition.link.end.url"}}},{"match":"(?x)\n(\"|'|\\b)\n(\n\tmailto (:)\n\t(?:\n\t\t(?! \\#\\w*\\#)\n\t\t(?: [-:@\\w.,~%+_/?=\u0026\\#;|!])\n\t)+\n\t(?\u003c![-.,?:\\#;])\n)\n(\\1)","captures":{"1":{"name":"punctuation.definition.link.begin.url"},"2":{"name":"constant.other.reference.link.underline.mailto.url"},"3":{"name":"punctuation.separator.delimiter.scheme.url"},"4":{"name":"punctuation.definition.link.end.url"}}}]},"version":{"name":"constant.other.version-string","match":"(?x)\n(\"|'|\\b)\n([vV]?)\n(0 | [1-9]\\d*) (\\.)\n(0 | [1-9]\\d*) (\\.)\n(0 | [1-9]\\d*)\n(?:\n\t(-)\n\t(\n\t\t(?: 0\n\t\t| [1-9]\\d*\n\t\t| \\d*[a-zA-Z-][0-9a-zA-Z-]*\n\t\t)\n\t\t\n\t\t(?:\n\t\t\t\\.\n\t\t\t(?: 0\n\t\t\t| [1-9]\\d*\n\t\t\t| \\d*[a-zA-Z-][0-9a-zA-Z-]*\n\t\t\t)\n\t\t)*\n\t)\n)?\n(?:\n\t(\\+)\n\t(\n\t\t[0-9a-zA-Z-]+\n\t\t(?:\\.[0-9a-zA-Z-]+)*\n\t)\n)?\n(\\1)","captures":{"1":{"name":"punctuation.definition.version-string.begin"},"10":{"name":"punctuation.delimiter.separator.plus"},"11":{"name":"meta.build-metadata","patterns":[{"include":"#dot"}]},"12":{"name":"punctuation.definition.version-string.end"},"2":{"name":"punctuation.definition.version-prefix"},"3":{"name":"meta.major.release-number"},"4":{"patterns":[{"include":"#dot"}]},"5":{"name":"meta.minor.release-number"},"6":{"patterns":[{"include":"#dot"}]},"7":{"name":"meta.patch.release-number"},"8":{"patterns":[{"include":"#dash"}]},"9":{"name":"meta.prerelease.release-number","patterns":[{"include":"#dot"}]}}}}}