{ "name": ".gitconfig", "scopeName": "source.gitconfig", "patterns": [ { "include": "#main" } ], "repository": { "alias": { "name": "meta.alias.gitconfig", "begin": "^\\s*([A-Za-z][-A-Za-z]*)\\s*(=)", "end": "(?\u003c!\\\\)$|(?=#)", "patterns": [ { "include": "#aliasInnards" } ], "beginCaptures": { "1": { "name": "variable.parameter.assignment.gitconfig" }, "2": { "name": "keyword.operator.assignment.key-value.gitconfig" } } }, "aliasInnards": { "patterns": [ { "name": "meta.quoted.shell.command.gitconfig", "begin": "\\G\\s*(?:(\")(!)|(!)(\"))\\s*+", "end": "(?\u003c!\\\\)(?:(\")|(?=$))", "patterns": [ { "include": "source.shell" } ], "beginCaptures": { "1": { "name": "punctuation.definition.string.begin.gitconfig" }, "2": { "name": "keyword.operator.shell-script.gitconfig" }, "3": { "name": "keyword.operator.shell-script.gitconfig" }, "4": { "name": "punctuation.definition.string.begin.gitconfig" } }, "endCaptures": { "1": { "name": "punctuation.definition.string.end.gitconfig" } } }, { "name": "meta.unquoted.shell.command.gitconfig", "begin": "\\G\\s*(!)", "end": "(?\u003c!\\\\)(?=$)", "patterns": [ { "include": "source.shell" } ], "beginCaptures": { "1": { "name": "keyword.operator.shell-script.gitconfig" } } }, { "name": "meta.git.subcommands.gitconfig", "contentName": "string.unquoted.source.gitconfig", "begin": "\\G\\s*([^\\s\"#;!]+)", "end": "(?\u003c!\\\\)(?=$|[#;])", "patterns": [ { "include": "#escapedNewline" } ], "beginCaptures": { "0": { "name": "string.unquoted.source.gitconfig" } } } ] }, "aliasSection": { "name": "meta.aliases.section.gitconfig", "begin": "(?i)^(\\[)\\s*(alias)\\s*(\\])", "end": "^(?=\\[)", "patterns": [ { "include": "#alias" }, { "include": "#comments" }, { "include": "#variables" } ], "beginCaptures": { "0": { "name": "meta.section.header.gitconfig" }, "1": { "name": "punctuation.definition.bracket.square.begin.gitconfig" }, "2": { "name": "entity.section.name.gitconfig" }, "6": { "name": "punctuation.definition.bracket.square.end.gitconfig" } } }, "comments": { "patterns": [ { "name": "comment.line.number-sign.gitconfig", "begin": "#", "end": "$", "beginCaptures": { "0": { "name": "punctuation.definition.comment.gitconfig" } } }, { "name": "comment.line.semicolon.gitconfig", "begin": ";", "end": "$", "beginCaptures": { "0": { "name": "punctuation.definition.comment.gitconfig" } } } ] }, "escapedNewline": { "name": "constant.character.escape.newline.gitconfig", "match": "(\\\\)$\\s*", "captures": { "1": { "name": "punctuation.definition.escape.backslash.gitconfig" } } }, "escapes": { "patterns": [ { "include": "#stringEscapes" }, { "name": "constant.character.escape.newline.gitconfig", "match": "(\\\\)n", "captures": { "1": { "name": "punctuation.definition.escape.backslash.gitconfig" } } }, { "name": "constant.character.escape.tab.gitconfig", "match": "(\\\\)t", "captures": { "1": { "name": "punctuation.definition.escape.backslash.gitconfig" } } }, { "name": "constant.character.escape.backspace.gitconfig", "match": "(\\\\)b", "captures": { "1": { "name": "punctuation.definition.escape.backslash.gitconfig" } } }, { "name": "invalid.illegal.syntax.escape.gitconfig", "match": "\\\\." } ] }, "main": { "patterns": [ { "include": "#comments" }, { "include": "#aliasSection" }, { "include": "#urlSection" }, { "include": "#section" } ] }, "section": { "name": "meta.section.gitconfig", "begin": "(?x)\n^ (\\[)\\s*(\\]) #1, #2\n|\n^ (\\[) #3\n\\s*\n(?:\n\t([-.A-Za-z0-9]+?) #4\n\t(?:\n\t\t(\\.) #5\n\t\t([-A-Za-z0-9]+) #6\n\t)?\n)\n(?:\n\t\\s*\n\t(\") #7\n\t( #8\n\t\t(?: \\\\[\\\\\"]\n\t\t| \\\\[^\\\\\"]\n\t\t| [^\\\\\"]+\n\t\t)*\n\t)\n\t(\") #9\n)?+\n\\s* (\\]) #10", "end": "^(?=\\[)", "patterns": [ { "include": "#comments" }, { "include": "#variables" } ], "beginCaptures": { "0": { "name": "meta.section.header.gitconfig" }, "1": { "name": "punctuation.definition.bracket.square.begin.gitconfig" }, "10": { "name": "punctuation.definition.bracket.square.end.gitconfig" }, "2": { "name": "punctuation.definition.bracket.square.end.gitconfig" }, "3": { "name": "punctuation.definition.bracket.square.begin.gitconfig" }, "4": { "name": "entity.section.name.gitconfig" }, "5": { "name": "punctuation.delimiter.separator.meta.dot.period.gitconfig" }, "6": { "name": "entity.subsection.name.deprecated-syntax.gitconfig" }, "7": { "name": "punctuation.definition.subsection.begin.gitconfig" }, "8": { "name": "entity.subsection.name.gitconfig", "patterns": [ { "include": "#stringEscapes" } ] }, "9": { "name": "punctuation.definition.subsection.end.gitconfig" } } }, "stringEscapes": { "patterns": [ { "name": "constant.character.escape.backslash.gitconfig", "match": "(\\\\)[\\\\\"]", "captures": { "1": { "name": "punctuation.definition.escape.backslash.gitconfig" } } }, { "name": "punctuation.definition.escape.backslash.ignored.gitconfig", "match": "\\\\(?=[^\\\\\"])" } ] }, "urlSection": { "name": "meta.url.section.gitconfig", "begin": "(?ix)\n^ (\\[) #1\n\\s*\n(url) #2\n(?:\n\t\\s*\n\t(\") #3\n\t( #4\n\t\t(?: \\\\[\\\\\"]\n\t\t| \\\\[^\\\\\"]\n\t\t| [^\\\\\"]+\n\t\t)*\n\t)\n\t(\") #5\n)?+\n\\s* (\\]) #6", "end": "^(?=\\[)", "patterns": [ { "include": "#comments" }, { "include": "#variables" } ], "beginCaptures": { "0": { "name": "meta.section.header.gitconfig" }, "1": { "name": "punctuation.definition.bracket.square.begin.gitconfig" }, "2": { "name": "entity.section.name.gitconfig" }, "3": { "name": "punctuation.definition.subsection.begin.gitconfig" }, "4": { "name": "string.other.link.gitconfig", "patterns": [ { "include": "#stringEscapes" } ] }, "5": { "name": "punctuation.definition.subsection.end.gitconfig" }, "6": { "name": "punctuation.definition.bracket.square.end.gitconfig" } } }, "variableInnards": { "patterns": [ { "match": "\\G\\s*(=)", "captures": { "1": { "name": "keyword.operator.assignment.key-value.gitconfig" } } }, { "name": "constant.logical.boolean.$1.gitconfig", "match": "(?i)\\b(true|false|on|off|1|0|yes|no)\\b" }, { "name": "constant.numeric.decimal.integer.int.gitconfig", "match": "[-+]?[0-9]+(?=$|[\\s#;])" }, { "name": "constant.numeric.decimal.float.gitconfig", "match": "[-+]?(?:[0-9]+\\.[0-9]*|\\.[0-9]+)(?=$|\\s#;)" }, { "name": "string.unquoted.argument.gitconfig", "match": "(?:[^\\\\\\s]|\\\\(?!$))+" }, { "include": "#escapedNewline" } ] }, "variables": { "patterns": [ { "name": "meta.variable-field.gitconfig", "begin": "(?i)\\b(signingkey)(?=\\s|$)", "end": "$|(?=#|;)", "patterns": [ { "name": "constant.other.signing-key.hex.gitconfig", "match": "\\w+" }, { "include": "#variableInnards" } ], "captures": { "1": { "name": "variable.parameter.assignment.gitconfig" }, "2": { "name": "keyword.operator.assignment.key-value.gitconfig" } } }, { "name": "meta.variable-field.gitconfig", "begin": "(?i)\\b(email)\\s*(=)", "end": "$|(?=#|;)", "patterns": [ { "name": "string.other.link.gitconfig", "begin": "\"", "end": "\"|(?=$)", "patterns": [ { "include": "#stringEscapes" } ], "beginCaptures": { "0": { "name": "string.quoted.string.begin.gitconfig" } }, "endCaptures": { "0": { "name": "string.quoted.string.end.gitconfig" } } }, { "name": "string.other.link.gitconfig", "match": "[^\\s\"]+" } ], "beginCaptures": { "1": { "name": "variable.parameter.assignment.gitconfig" }, "2": { "name": "keyword.operator.assignment.key-value.gitconfig" } } }, { "name": "meta.variable-field.gitconfig", "begin": "(?i)\\b(textconv)\\s*(=)", "end": "$|(?=#|;)", "patterns": [ { "include": "#aliasInnards" } ], "beginCaptures": { "1": { "name": "variable.parameter.assignment.gitconfig" }, "2": { "name": "keyword.operator.assignment.key-value.gitconfig" } } }, { "name": "meta.variable-field.gitconfig", "begin": "[A-Za-z][-A-Za-z]*", "end": "$|(?=#|;)", "patterns": [ { "include": "#variableInnards" } ], "beginCaptures": { "0": { "name": "variable.parameter.assignment.gitconfig" } } } ] } } }