tm-grammars
Version:
Collecton of TextMate grammars in JSON
1,706 lines (1,705 loc) • 95.1 kB
JSON
{
"displayName": "LaTeX",
"name": "latex",
"patterns": [
{
"match": "(?<=\\\\(?:[@\\w]|[@\\w]{2}|[@\\w]{3}|[@\\w]{4}|[@\\w]{5}|[@\\w]{6}))\\s",
"name": "meta.space-after-command.latex"
},
{
"begin": "((\\\\)(?:usepackage|documentclass))\\b(?=[\\[{])",
"beginCaptures": {
"1": {
"name": "keyword.control.preamble.latex"
},
"2": {
"name": "punctuation.definition.function.latex"
}
},
"end": "(?<=})",
"endCaptures": {
"0": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"name": "meta.preamble.latex",
"patterns": [
{
"include": "#multiline-optional-arg"
},
{
"begin": "((?:\\G|(?<=]))\\{)",
"beginCaptures": {
"0": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "support.class.latex",
"end": "(})",
"endCaptures": {
"0": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "$self"
}
]
}
]
},
{
"begin": "((\\\\)in(?:clude|put))(\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.include.latex"
},
"2": {
"name": "punctuation.definition.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "}",
"endCaptures": {
"0": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"name": "meta.include.latex",
"patterns": [
{
"include": "$self"
}
]
},
{
"begin": "((\\\\)((?:sub){0,2}section|(?:sub)?paragraph|chapter|part|addpart|addchap|addsec|minisec|frametitle)\\*?)((?:\\[[^\\[]*?]){0,2})(\\{)",
"beginCaptures": {
"1": {
"name": "support.function.section.latex"
},
"2": {
"name": "punctuation.definition.function.latex"
},
"4": {
"patterns": [
{
"include": "#optional-arg-bracket"
}
]
},
"5": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "entity.name.section.latex",
"end": "}",
"endCaptures": {
"0": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"name": "meta.function.section.$3.latex",
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "(\\s*\\\\begin\\{songs}\\{.*})",
"captures": {
"1": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"contentName": "meta.data.environment.songs.latex",
"end": "(\\\\end\\{songs}(?:\\s*\\n)?)",
"name": "meta.function.environment.songs.latex",
"patterns": [
{
"include": "text.tex.latex#songs-chords"
}
]
},
{
"begin": "\\s*((\\\\)beginsong)(?=\\{)",
"captures": {
"1": {
"name": "support.function.be.latex"
},
"2": {
"name": "punctuation.definition.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.begin.latex"
},
"4": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"end": "((\\\\)endsong)(?:\\s*\\n)?",
"name": "meta.function.environment.song.latex",
"patterns": [
{
"include": "#multiline-arg-no-highlight"
},
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=[]}]))\\s*",
"contentName": "meta.data.environment.song.latex",
"end": "\\s*(?=\\\\endsong)",
"patterns": [
{
"include": "text.tex.latex#songs-chords"
}
]
}
]
},
{
"begin": "(?:^\\s*)?\\\\begin\\{(lstlisting|minted|pyglist)}(?=[\\[{])",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\\\end\\{\\1}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)(asy(?:|mptote))(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.asy",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.asy"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(bash)(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.shell",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.shell"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(c(?:|pp))(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.cpp.embedded.latex",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.cpp.embedded.latex"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(css)(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.css",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.css"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(gnuplot)(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.gnuplot",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.gnuplot"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(h(?:s|askell))(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.haskell",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.haskell"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(html)(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "text.html",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "text.html.basic"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(java)(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.java",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.java"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(j(?:l|ulia))(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.julia",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.julia"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(j(?:s|avascript))(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.js",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.js"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(lua)(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.lua",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.lua"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(py|python|sage)(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.python",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.python"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(r(?:b|uby))(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.ruby",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.ruby"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(rust)(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.rust",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.rust"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(t(?:s|ypescript))(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.ts",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.ts"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(xml)(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "text.xml",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "text.xml"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)(yaml)(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "source.yaml",
"end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)})",
"patterns": [
{
"include": "source.yaml"
}
]
},
{
"begin": "(?:\\G|(?<=]))(\\{)([A-Za-z]*)(})",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
},
"2": {
"name": "variable.parameter.function.latex"
},
"3": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"contentName": "meta.function.embedded.latex",
"end": "^\\s*(?=\\\\end\\{(?:lstlisting|minted|pyglist)})",
"name": "meta.embedded.block.generic.latex"
}
]
},
{
"begin": "\\s*\\\\begin\\{asy(?:|code)\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{asy(?:|code)\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.asymptote",
"end": "^\\s*(?=\\\\end\\{asy(?:|code)\\*?})",
"patterns": [
{
"include": "source.asymptote"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{cppcode\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{cppcode\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.cpp.embedded.latex",
"end": "^\\s*(?=\\\\end\\{cppcode\\*?})",
"patterns": [
{
"include": "source.cpp.embedded.latex"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{dot(?:2tex|code)\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{dot(?:2tex|code)\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.dot",
"end": "^\\s*(?=\\\\end\\{dot(?:2tex|code)\\*?})",
"patterns": [
{
"include": "source.dot"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{gnuplot\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{gnuplot\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.gnuplot",
"end": "^\\s*(?=\\\\end\\{gnuplot\\*?})",
"patterns": [
{
"include": "source.gnuplot"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{hscode\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{hscode\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.haskell",
"end": "^\\s*(?=\\\\end\\{hscode\\*?})",
"patterns": [
{
"include": "source.haskell"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{java(?:code|verbatim|block|concode|console|converbatim)\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{java(?:code|verbatim|block|concode|console|converbatim)\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.java",
"end": "^\\s*(?=\\\\end\\{java(?:code|verbatim|block|concode|console|converbatim)\\*?})",
"patterns": [
{
"include": "source.java"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{jl(?:code|verbatim|block|concode|console|converbatim)\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{jl(?:code|verbatim|block|concode|console|converbatim)\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.julia",
"end": "^\\s*(?=\\\\end\\{jl(?:code|verbatim|block|concode|console|converbatim)\\*?})",
"patterns": [
{
"include": "source.julia"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{julia(?:code|verbatim|block|concode|console|converbatim)\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{julia(?:code|verbatim|block|concode|console|converbatim)\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.julia",
"end": "^\\s*(?=\\\\end\\{julia(?:code|verbatim|block|concode|console|converbatim)\\*?})",
"patterns": [
{
"include": "source.julia"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{luacode\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{luacode\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.lua",
"end": "^\\s*(?=\\\\end\\{luacode\\*?})",
"patterns": [
{
"include": "source.lua"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{py(?:code|verbatim|block|concode|console|converbatim)\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{py(?:code|verbatim|block|concode|console|converbatim)\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.python",
"end": "^\\s*(?=\\\\end\\{py(?:code|verbatim|block|concode|console|converbatim)\\*?})",
"patterns": [
{
"include": "source.python"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{pylab(?:code|verbatim|block|concode|console|converbatim)\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{pylab(?:code|verbatim|block|concode|console|converbatim)\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.python",
"end": "^\\s*(?=\\\\end\\{pylab(?:code|verbatim|block|concode|console|converbatim)\\*?})",
"patterns": [
{
"include": "source.python"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.python",
"end": "^\\s*(?=\\\\end\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?})",
"patterns": [
{
"include": "source.python"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{scalacode\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{scalacode\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.scala",
"end": "^\\s*(?=\\\\end\\{scalacode\\*?})",
"patterns": [
{
"include": "source.scala"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{sympy(?:code|verbatim|block|concode|console|converbatim)\\*?}(?:\\[[-0-9A-Z_a-z]*])?(?=[\\[{]|\\s*$)",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "\\s*\\\\end\\{sympy(?:code|verbatim|block|concode|console|converbatim)\\*?}",
"patterns": [
{
"include": "#multiline-optional-arg-no-highlight"
},
{
"begin": "(?:\\G|(?<=]))(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"contentName": "variable.parameter.function.latex",
"end": "(})",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
}
},
{
"begin": "^(?=\\s*)",
"contentName": "source.python",
"end": "^\\s*(?=\\\\end\\{sympy(?:code|verbatim|block|concode|console|converbatim)\\*?})",
"patterns": [
{
"include": "source.python"
}
]
}
]
},
{
"begin": "\\s*\\\\begin\\{((?:[A-Za-z]*code|lstlisting|minted|pyglist)\\*?)}(?:\\[.*])?(?:\\{.*})?",
"captures": {
"0": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"contentName": "meta.function.embedded.latex",
"end": "\\\\end\\{\\1}(?:\\s*\\n)?",
"name": "meta.embedded.block.generic.latex"
},
{
"begin": "((?:^\\s*)?\\\\begin\\{((?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?))})(?:\\[[^]]*]){0,2}(?=\\{)",
"captures": {
"1": {
"patterns": [
{
"include": "#begin-env-tokenizer"
}
]
}
},
"end": "(\\\\end\\{\\2})",
"patterns": [
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:asy(?:|mptote))",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "source.asy",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "source.asy"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:bash)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "source.shell",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "source.shell"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:c(?:|pp))",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "source.cpp.embedded.latex",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "source.cpp.embedded.latex"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:css)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "source.css",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "source.css"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:gnuplot)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "source.gnuplot",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "source.gnuplot"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:h(?:s|askell))",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "source.haskell",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "source.haskell"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:html)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "text.html",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "text.html.basic"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:java)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "source.java",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "source.java"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:j(?:l|ulia))",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "source.julia",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "source.julia"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:j(?:s|avascript))",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "source.js",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "source.js"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:lua)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "source.lua",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "source.lua"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:py|python|sage)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "source.python",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "source.python"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:r(?:b|uby))",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [
{
"include": "text.tex#braces"
},
{
"include": "$self"
}
]
},
{
"begin": "^(\\s*)",
"contentName": "source.ruby",
"end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"include": "source.ruby"
}
]
}
]
},
{
"begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:rust)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.arguments.begin.latex"
}
},
"end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)})",
"patterns": [
{
"begin": "\\G",
"end": "(})\\s*$",
"endCaptures": {
"1": {
"name": "punctuation.definition.arguments.end.latex"
}
},
"patterns": [