{ "information_for_contributors": [ "This file has been converted from https://github.com/jlelong/vscode-latex-basics/blob/master/syntaxes/Bibtex.tmLanguage.json", "If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], "version": "https://github.com/jlelong/vscode-latex-basics/commit/4b19be579cb4a3c680f8b4bb613dcebfac826f8b", "name": "bibtex", "scopeName": "text.bibtex", "comment": "Grammar based on description from http://artis.imag.fr/~Xavier.Decoret/resources/xdkbibtex/bibtex_summary.html#comment\n\t\n\tTODO: Does not support @preamble\n\t", "patterns": [ { "begin": "@Comment", "beginCaptures": { "0": { "name": "punctuation.definition.comment.bibtex" } }, "end": "$\\n?", "name": "comment.line.at-sign.bibtex" }, { "patterns": [ { "include": "#percentage_comment" } ] }, { "begin": "((@)(?i:string))\\s*(\\{)\\s*([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)", "beginCaptures": { "1": { "name": "keyword.other.string-constant.bibtex" }, "2": { "name": "punctuation.definition.keyword.bibtex" }, "3": { "name": "punctuation.section.string-constant.begin.bibtex" }, "4": { "name": "variable.other.bibtex" } }, "end": "\\}", "endCaptures": { "0": { "name": "punctuation.section.string-constant.end.bibtex" } }, "name": "meta.string-constant.braces.bibtex", "patterns": [ { "include": "#string_content" } ] }, { "begin": "((@)(?i:string))\\s*(\\()\\s*([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)", "beginCaptures": { "1": { "name": "keyword.other.string-constant.bibtex" }, "2": { "name": "punctuation.definition.keyword.bibtex" }, "3": { "name": "punctuation.section.string-constant.begin.bibtex" }, "4": { "name": "variable.other.bibtex" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.section.string-constant.end.bibtex" } }, "name": "meta.string-constant.parenthesis.bibtex", "patterns": [ { "include": "#string_content" } ] }, { "begin": "((@)[a-zA-Z]+)\\s*(\\{)\\s*([^\\s,]*)", "beginCaptures": { "1": { "name": "keyword.other.entry-type.bibtex" }, "2": { "name": "punctuation.definition.keyword.bibtex" }, "3": { "name": "punctuation.section.entry.begin.bibtex" }, "4": { "name": "entity.name.type.entry-key.bibtex" } }, "end": "\\}", "endCaptures": { "0": { "name": "punctuation.section.entry.end.bibtex" } }, "name": "meta.entry.braces.bibtex", "patterns": [ { "include": "#percentage_comment" }, { "include": "#url_field" }, { "begin": "([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)", "beginCaptures": { "1": { "name": "support.function.key.bibtex" }, "2": { "name": "punctuation.separator.key-value.bibtex" } }, "end": "(?=[,}])", "name": "meta.key-assignment.bibtex", "patterns": [ { "include": "#percentage_comment" }, { "include": "#integer" }, { "include": "#string_content" }, { "include": "#string_var" } ] } ] }, { "begin": "((@)[a-zA-Z]+)\\s*(\\()\\s*([^\\s,]*)", "beginCaptures": { "1": { "name": "keyword.other.entry-type.bibtex" }, "2": { "name": "punctuation.definition.keyword.bibtex" }, "3": { "name": "punctuation.section.entry.begin.bibtex" }, "4": { "name": "entity.name.type.entry-key.bibtex" } }, "end": "\\)", "endCaptures": { "0": { "name": "punctuation.section.entry.end.bibtex" } }, "name": "meta.entry.parenthesis.bibtex", "patterns": [ { "include": "#percentage_comment" }, { "include": "#url_field" }, { "begin": "([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)", "beginCaptures": { "1": { "name": "support.function.key.bibtex" }, "2": { "name": "punctuation.separator.key-value.bibtex" } }, "end": "(?=[,)])", "name": "meta.key-assignment.bibtex", "patterns": [ { "include": "#percentage_comment" }, { "include": "#integer" }, { "include": "#string_content" }, { "include": "#string_var" } ] } ] }, { "begin": "[^@\\n]", "end": "(?=@)", "name": "comment.block.bibtex" } ], "repository": { "integer": { "match": "\\s*(\\d+)\\s*", "captures": { "1": { "name": "constant.numeric.bibtex" } } }, "nested_braces": { "begin": "(?\\?\\[\\]\\^\\_\\`\\|]+)\\s*(#)?", "captures": { "1": { "name": "keyword.operator.bibtex" }, "2": { "name": "support.variable.bibtex" }, "3": { "name": "keyword.operator.bibtex" } } }, "string_content": { "patterns": [ { "begin": "\\{", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.bibtex" } }, "end": "(\\})(?=(?:,?\\s*\\}?\\s*\\n)|(?:\\s*#))", "endCaptures": { "1": { "name": "punctuation.definition.string.end.bibtex" } }, "patterns": [ { "include": "#url_cmd" }, { "include": "#percentage_comment" }, { "match": "@", "name": "invalid.illegal.at-sign.bibtex" }, { "include": "#nested_braces" } ] }, { "begin": "\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.bibtex" } }, "end": "\"(?=(?:,?\\s*\\}?\\s*\\n)|(?:\\s*#))", "endCaptures": { "0": { "name": "punctuation.definition.string.end.bibtex" } }, "patterns": [ { "include": "#url_cmd" }, { "include": "#percentage_comment" }, { "match": "@", "name": "invalid.illegal.at-sign.bibtex" } ] } ] }, "string_url": { "patterns": [ { "begin": "\\{|\"", "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.bibtex" } }, "end": "(\\}|\")(?=(?:,?\\s*\\}?\\s*\\n)|(?:\\s*#))", "endCaptures": { "1": { "name": "punctuation.definition.string.end.bibtex" } }, "contentName": "meta.url.bibtex", "patterns": [ { "include": "#url_cmd" } ] } ] }, "percentage_comment": { "patterns": [ { "begin": "(^[ \\t]+)?(?=%)", "beginCaptures": { "1": { "name": "punctuation.whitespace.comment.leading.bibtex" } }, "end": "(?!\\G)", "patterns": [ { "begin": "%", "beginCaptures": { "0": { "name": "punctuation.definition.comment.bibtex" } }, "end": "$\\n?", "name": "comment.line.percentage.bibtex" } ] } ] }, "url_cmd": { "captures": { "1": { "name": "support.function.url.bibtex" }, "2": { "name": "punctuation.definition.function.bibtex" }, "3": { "name": "punctuation.definition.arguments.begin.bibtex" }, "4": { "name": "markup.underline.link.bibtex" }, "5": { "name": "punctuation.definition.arguments.end.bibtex" } }, "match": "(?:\\s*)((\\\\)(?:url|href))(\\{)([^}]*)(\\})", "name": "meta.function.link.url.bibtex" }, "url_field": { "begin": "(url)\\s*(\\=)", "beginCaptures": { "1": { "name": "support.function.key.bibtex" }, "2": { "name": "punctuation.separator.key-value.bibtex" } }, "end": "(?=[,}])", "name": "meta.key-assignment.url.bibtex", "patterns": [ { "include": "#string_url" } ] } } }