253 lines
8.3 KiB
JSON
253 lines
8.3 KiB
JSON
{
|
|
"information_for_contributors": [
|
|
"Grammar based on description from http://artis.imag.fr/~Xavier.Decoret/resources/xdkbibtex/bibtex_summary.html#comment"
|
|
],
|
|
"name": "BibTeX",
|
|
"scopeName": "text.bibtex",
|
|
"fileTypes": [
|
|
"bib"
|
|
],
|
|
"patterns": [
|
|
{
|
|
"begin": "@Comment",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.comment.bibtex"
|
|
}
|
|
},
|
|
"end": "$\\n?",
|
|
"name": "comment.line.at-sign.bibtex"
|
|
},
|
|
{
|
|
"begin": "((@)String)\\s*(\\{)\\s*([a-zA-Z]*)",
|
|
"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": "((@)String)\\s*(\\()\\s*([a-zA-Z]*)",
|
|
"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": [
|
|
{
|
|
"begin": "([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "string.unquoted.key.bibtex"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.separator.key-value.bibtex"
|
|
}
|
|
},
|
|
"end": "(?=[,}])",
|
|
"name": "meta.key-assignment.bibtex",
|
|
"patterns": [
|
|
{
|
|
"include": "#string_content"
|
|
},
|
|
{
|
|
"include": "#integer"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": [
|
|
{
|
|
"begin": "([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "string.unquoted.key.bibtex"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.separator.key-value.bibtex"
|
|
}
|
|
},
|
|
"end": "(?=[,)])",
|
|
"name": "meta.key-assignment.bibtex",
|
|
"patterns": [
|
|
{
|
|
"include": "#string_content"
|
|
},
|
|
{
|
|
"include": "#integer"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "[^@\\n]",
|
|
"end": "(?=@)",
|
|
"name": "comment.block.bibtex"
|
|
}
|
|
],
|
|
"repository": {
|
|
"integer": {
|
|
"match": "\\d+",
|
|
"name": "constant.numeric.bibtex"
|
|
},
|
|
"nested_braces": {
|
|
"begin": "\\{",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.group.begin.bibtex"
|
|
}
|
|
},
|
|
"end": "\\}",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.group.end.bibtex"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#nested_braces"
|
|
}
|
|
]
|
|
},
|
|
"string_content": {
|
|
"patterns": [
|
|
{
|
|
"begin": "\"",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.begin.bibtex"
|
|
}
|
|
},
|
|
"end": "\"",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.end.bibtex"
|
|
}
|
|
},
|
|
"name": "string.quoted.double.bibtex",
|
|
"patterns": [
|
|
{
|
|
"include": "#nested_braces"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "\\{",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.begin.bibtex"
|
|
}
|
|
},
|
|
"end": "\\}",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.end.bibtex"
|
|
}
|
|
},
|
|
"name": "string.quoted.other.braces.bibtex",
|
|
"patterns": [
|
|
{
|
|
"match": "@",
|
|
"name": "invalid.illegal.at-sign.bibtex"
|
|
},
|
|
{
|
|
"include": "#nested_braces"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|