{ "name" : "context.bibtex", "patterns" : [ { "include" : "#forget" }, { "include" : "#comment" }, { "include" : "#shortcut" }, { "include" : "#definition" } ], "repository" : { "comment" : { "begin" : "\u005Cs*(@(?:comment|Comment|COMMENT))\u005Cs*\u005Cs*({)\u005Cs*", "beginCaptures" : { "1" : { "name" : "context.keyword.comment.name.bibtex" }, "2" : { "name" : "context.grouping.comment.open.bibtex" } }, "end" : "\u005Cs*(})\u005Cs*", "endCaptures" : { "1" : { "name" : "context.grouping.comment.close.bibtex" } }, "name" : "context.comment.comment.comment.content.bibtex" }, "concatinator" : { "match" : "\u005Cs*(#)\u005Cs*", "name" : "context.operator.definition.concatinator.bibtex" }, "definition" : { "begin" : "\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*\u005Cs*({)\u005Cs*\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*\u005Cs*(,)\u005Cs*", "beginCaptures" : { "1" : { "name" : "context.keyword.definition.category.bibtex" }, "2" : { "name" : "context.grouping.definition.open.bibtex" }, "3" : { "name" : "context.operator.definition.label.separator.bibtex" } }, "end" : "\u005Cs*(})\u005Cs*", "endCaptures" : { "1" : { "name" : "context.grouping.definition.close.bibtex" } }, "name" : "context.warning.definition.error.bibtex", "patterns" : [ { "include" : "#string_double" }, { "include" : "#string_single" }, { "include" : "#string_grouped" }, { "include" : "#string_value" }, { "include" : "#string_concat" }, { "include" : "#separator" } ] }, "forget" : { "match" : "%.*$\u005Cn?", "name" : "context.comment.comment.comment.inline.bibtex" }, "separator" : { "match" : "\u005Cs*(,)\u005Cs*", "name" : "context.operator.definition.separator.bibtex" }, "shortcut" : { "begin" : "\u005Cs*(@(?:string|String|STRING))\u005Cs*\u005Cs*({)\u005Cs*", "beginCaptures" : { "1" : { "name" : "context.keyword.shortcut.name.bibtex" }, "2" : { "name" : "context.grouping.shortcut.open.bibtex" } }, "end" : "\u005Cs*(})\u005Cs*", "endCaptures" : { "1" : { "name" : "context.grouping.shortcut.close.bibtex" } }, "name" : "context.warning.shortcut.error.bibtex", "patterns" : [ { "include" : "#string_double" }, { "include" : "#string_single" }, { "include" : "#string_grouped" }, { "include" : "#string_value" }, { "include" : "#string_concat" } ] }, "string_concat" : { "patterns" : [ { "captures" : { "1" : { "name" : "context.operator.concat.doublequoted.concatinator.bibtex" }, "2" : { "name" : "context.special.concat.doublequoted.open.bibtex" }, "3" : { "name" : "context.text.concat.doublequoted.text.bibtex" }, "4" : { "name" : "context.special.concat.doublequoted.close.bibtex" } }, "match" : "\u005Cs*(#)\u005Cs*\u005Cs*(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*" }, { "captures" : { "1" : { "name" : "context.operator.concat.singlequoted.concatinator.bibtex" }, "2" : { "name" : "context.special.concat.singlequoted.open.bibtex" }, "3" : { "name" : "context.text.concat.singlequoted.text.bibtex" }, "4" : { "name" : "context.special.concat.singlequoted.close.bibtex" } }, "match" : "\u005Cs*(#)\u005Cs*\u005Cs*(')((?:\u005C\u005C'|[^'])*)(')\u005Cs*" }, { "captures" : { "1" : { "name" : "context.operator.concat.grouped.concatinator.bibtex" }, "2" : { "name" : "context.operator.concat.grouped.open.bibtex" }, "3" : { "name" : "context.text.concat.grouped.text.bibtex" }, "4" : { "name" : "context.operator.concat.grouped.close.bibtex" } }, "match" : "\u005Cs*(#)\u005Cs*\u005Cs*({)((?:\u005C\u005C{|\u005C\u005C}|[^\u005C{\u005C}])*)(})\u005Cs*" }, { "captured" : { "1" : { "name" : "context.operator.concat.value.concatinator.bibtex" }, "2" : { "name" : "context.text.concat.value.text.bibtex" } }, "match" : "\u005Cs*(#)\u005Cs*\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*" } ] }, "string_double" : { "captures" : { "1" : { "name" : "context.command.doublequoted.key.bibtex" }, "2" : { "name" : "context.operator.doublequoted.equal.bibtex" }, "3" : { "name" : "context.special.doublequoted.open.bibtex" }, "4" : { "name" : "context.text.doublequoted.text.bibtex" }, "5" : { "name" : "context.special.doublequoted.close.bibtex" } }, "match" : "\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*\u005Cs*(=)\u005Cs*\u005Cs*(\u0022)((?:\u005C\u005C\u0022|[^\u0022])*)(\u0022)\u005Cs*" }, "string_grouped" : { "captures" : { "1" : { "name" : "context.command.grouped.key.bibtex" }, "2" : { "name" : "context.operator.grouped.equal.bibtex" }, "3" : { "name" : "context.operator.grouped.open.bibtex" }, "4" : { "name" : "context.text.grouped.text.bibtex" }, "5" : { "name" : "context.operator.grouped.close.bibtex" } }, "match" : "\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*\u005Cs*(=)\u005Cs*\u005Cs*({)((?:\u005C\u005C{|\u005C\u005C}|[^\u005C{\u005C}])*)(})\u005Cs*" }, "string_single" : { "captures" : { "1" : { "name" : "context.command.singlequoted.key.bibtex" }, "2" : { "name" : "context.operator.singlequoted.equal.bibtex" }, "3" : { "name" : "context.special.singlequoted.open.bibtex" }, "4" : { "name" : "context.text.singlequoted.text.bibtex" }, "5" : { "name" : "context.special.singlequoted.close.bibtex" } }, "match" : "\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*\u005Cs*(=)\u005Cs*\u005Cs*(')((?:\u005C\u005C'|[^'])*)(')\u005Cs*" }, "string_value" : { "captures" : { "1" : { "name" : "context.command.value.key.bibtex" }, "2" : { "name" : "context.operator.value.equal.bibtex" }, "3" : { "name" : "context.text.value.text.bibtex" } }, "match" : "\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*\u005Cs*(=)\u005Cs*\u005Cs*([a-zA-Z0-9\u005C_@:\u005C-]+)\u005Cs*" } }, "scopeName" : "source.context.bibtex", "version" : "1.0.0" }