--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/syntaxes/LaTeX.tmLanguage.json Mon May 11 17:50:17 2020 -0500 @@ -0,0 +1,1588 @@ +{ + "fileTypes": [ + "tex" + ], + "firstLineMatch": "^\\\\documentclass(\\[.*\\])?\\{.*\\}", + "keyEquivalent": "^~L", + "name": "LaTeX+", + "patterns": [ + { + "comment": "This scope identifies partially typed commands such as `\\tab`. We use this to trigger “Command Completion” only when it makes sense.", + "match": "(?<=\\\\[\\w@]|\\\\[\\w@]{2}|\\\\[\\w@]{3}|\\\\[\\w@]{4}|\\\\[\\w@]{5}|\\\\[\\w@]{6})\\s", + "name": "meta.space-after-command.latex" + }, + { + "begin": "((\\\\)(?:usepackage|documentclass))((?:\\[[^\\[]*?\\])*)(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.preamble.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "contentName": "support.class.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.preamble.latex", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "((\\\\)(?:include|input))(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.include.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "contentName": "support.class.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" + } + ] + }, + "5": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "comment": "this works OK with all kinds of crazy stuff as long as section is one line", + "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": "$base" + } + ] + }, + { + "begin": "(^\\s*)?(?=\\\\begin\\{(lstlisting|minted|pyglist)\\})", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.latex" + } + }, + "end": "(?!\\G)(\\s*$\\n?)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.latex" + } + }, + "patterns": [ + { + "begin": "(\\\\begin\\{minted\\}(?:\\[.*\\])?\\{(?:cpp|c)\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#minted-env" + } + ] + } + }, + "contentName": "source.cpp.embedded.latex", + "patterns": [ + { + "include": "source.cpp.embedded.latex" + } + ], + "end": "(\\\\end\\{minted\\})" + }, + { + "begin": "(\\\\begin\\{minted\\}(?:\\[.*\\])?\\{css\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#minted-env" + } + ] + } + }, + "contentName": "source.css", + "patterns": [ + { + "include": "source.css" + } + ], + "end": "(\\\\end\\{minted\\})" + }, + { + "begin": "(\\\\begin\\{minted\\}(?:\\[.*\\])?\\{html\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#minted-env" + } + ] + } + }, + "contentName": "text.html", + "patterns": [ + { + "include": "text.html" + } + ], + "end": "(\\\\end\\{minted\\})" + }, + { + "begin": "(\\\\begin\\{minted\\}(?:\\[.*\\])?\\{java\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#minted-env" + } + ] + } + }, + "contentName": "source.java", + "patterns": [ + { + "include": "source.java" + } + ], + "end": "(\\\\end\\{minted\\})" + }, + { + "begin": "(\\\\begin\\{minted\\}(?:\\[.*\\])?\\{(?:js|javascript)\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#minted-env" + } + ] + } + }, + "contentName": "source.js", + "patterns": [ + { + "include": "source.js" + } + ], + "end": "(\\\\end\\{minted\\})" + }, + { + "begin": "(\\\\begin\\{minted\\}(?:\\[.*\\])?\\{lua\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#minted-env" + } + ] + } + }, + "contentName": "source.lua", + "patterns": [ + { + "include": "source.lua" + } + ], + "end": "(\\\\end\\{minted\\})" + }, + { + "begin": "(\\\\begin\\{minted\\}(?:\\[.*\\])?\\{(?:python|py)\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#minted-env" + } + ] + } + }, + "contentName": "source.python", + "patterns": [ + { + "include": "source.python" + } + ], + "end": "(\\\\end\\{minted\\})" + }, + { + "begin": "(\\\\begin\\{minted\\}(?:\\[.*\\])?\\{xml\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#minted-env" + } + ] + } + }, + "contentName": "yaml.xml", + "patterns": [ + { + "include": "yaml.xml" + } + ], + "end": "(\\\\end\\{minted\\})" + }, + { + "begin": "(\\\\begin\\{minted\\}(?:\\[.*\\])?\\{yaml\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#minted-env" + } + ] + } + }, + "contentName": "source.yaml", + "patterns": [ + { + "include": "source.yaml" + } + ], + "end": "(\\\\end\\{minted\\})" + }, + { + "begin": "(\\\\begin\\{(?:lstlisting|minted|pyglist)\\}(?:\\[.*\\])?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#minted-env" + } + ] + } + }, + "contentName": "meta.function.embedded.latex", + "end": "(\\\\end\\{(?:lstlisting|minted|pyglist)\\})", + "name": "meta.embedded.block.generic" + } + ] + }, + { + "begin": "((?:\\s*)\\\\begin\\{(cppcode(?:\\*)?)\\}(?:\\[.*\\])?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#code-env" + } + ] + } + }, + "contentName": "source.cpp.embedded.latex", + "patterns": [ + { + "include": "source.cpp.embedded.latex" + }, + { + "include": "source.cpp" + } + ], + "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)" + }, + { + "begin": "((?:\\s*)\\\\begin\\{(hscode(?:\\*)?)\\}(?:\\[.*\\])?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#code-env" + } + ] + } + }, + "contentName": "source.haskell", + "patterns": [ + { + "include": "source.haskell" + } + ], + "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)" + }, + { + "begin": "((?:\\s*)\\\\begin\\{(luacode(?:\\*)?)\\}(?:\\[.*\\])?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#code-env" + } + ] + } + }, + "contentName": "source.lua", + "patterns": [ + { + "include": "source.lua" + } + ], + "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)" + }, + { + "begin": "((?:\\s*)\\\\begin\\{((?:pycode|sageblock|sagesilent|sageverbatim|sageexample|sagecommandline)(?:\\*)?)\\}(?:\\[.*\\])?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#code-env" + } + ] + } + }, + "contentName": "source.python", + "patterns": [ + { + "include": "source.python" + } + ], + "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)" + }, + { + "begin": "((?:\\s*)\\\\begin\\{(scalacode(?:\\*)?)\\}(?:\\[.*\\])?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#code-env" + } + ] + } + }, + "contentName": "source.scala", + "patterns": [ + { + "include": "source.scala" + } + ], + "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)" + }, + { + "begin": "((?:\\s*)\\\\begin\\{([a-z]*code(?:\\*)?)\\}(?:\\[.*\\])?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#code-env" + } + ] + } + }, + "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)" + }, + { + "begin": "((?:\\s*)\\\\begin\\{asy\\}(?:\\[.*\\])?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#code-env" + } + ] + } + }, + "contentName": "source.asymptote", + "patterns": [ + { + "include": "source.asymptote" + } + ], + "end": "(\\\\end\\{asy\\}(?:\\s*\\n)?)" + }, + { + "begin": "((?:\\s*)\\\\begin\\{dot2tex\\}(?:\\[.*\\])?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#code-env" + } + ] + } + }, + "contentName": "source.dot", + "patterns": [ + { + "include": "source.dot" + } + ], + "end": "(\\\\end\\{dot2tex\\}(?:\\s*\\n)?)" + }, + { + "begin": "((?:\\s*)\\\\begin\\{gnuplot\\}(?:\\[.*\\])?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#code-env" + } + ] + } + }, + "contentName": "source.gnuplot", + "patterns": [ + { + "include": "source.gnuplot" + } + ], + "end": "(\\\\end\\{gnuplot\\}(?:\\s*\\n)?)" + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)((?:fboxv|boxedv|V|v)erbatim)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "markup.raw.verbatim.latex", + "end": "((\\\\)end)(\\{)(\\4)(\\})", + "name": "meta.function.verbatim.latex" + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)(VerbatimOut)(\\})(\\{)([^\\}]*)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + }, + "6": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "7": { + "name": "support.class.latex" + }, + "8": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "markup.raw.verbatim.latex", + "end": "((\\\\)end)(\\{)(\\VerbatimOut)(\\})", + "name": "meta.function.verbatim.latex" + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)(alltt)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "markup.raw.verbatim.latex", + "end": "((\\\\)end)(\\{)(alltt)(\\})", + "name": "meta.function.alltt.latex", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.function.tex" + } + }, + "match": "(\\\\)[A-Za-z]+", + "name": "support.function.general.tex" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)((?:C|c)omment)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "comment.block.environment.tex", + "end": "((\\\\)end)(\\{)(\\4)(\\})", + "name": "meta.function.verbatim.latex" + }, + { + "captures": { + "1": { + "name": "support.function.url.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "markup.underline.link.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "match": "(?:\\s*)((\\\\)(?:url|href))(\\{)([^}]*)(\\})", + "name": "meta.function.link.url.latex" + }, + { + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "comment": "These two patterns match the \\begin{document} and \\end{document} commands, so that the environment matching pattern following them will ignore those commands.", + "match": "(?:\\s*)((\\\\)begin)(\\{)(document)(\\})", + "name": "meta.function.begin-document.latex" + }, + { + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "match": "(?:\\s*)((\\\\)end)(\\{)(document)(\\})", + "name": "meta.function.end-document.latex" + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)((?:align|equation|(?:IEEE)?eqnarray|multline|aligned|alignat|split|gather|gathered|cases|displaymath|[a-zA-Z]*matrix)(?:\\*)?)(\\})(\\s*\\n)?", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "support.class.math.block.environment.latex", + "end": "(?:\\s*)((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?", + "name": "meta.function.environment.math.latex", + "patterns": [ + { + "match": "(?<!\\\\)&", + "name": "keyword.control.equation.align.latex" + }, + { + "match": "\\\\\\\\", + "name": "keyword.control.equation.newline.latex" + }, + { + "include": "#definition-label" + }, + { + "include": "text.tex#math" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)(array|tabular[xy*]?|xltabular)(\\})(\\s*\\n)?", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "meta.data.environment.tabular.latex", + "end": "(?:\\s*)((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?", + "name": "meta.function.environment.tabular.latex", + "patterns": [ + { + "match": "(?<!\\\\)&", + "name": "keyword.control.table.cell.latex" + }, + { + "match": "\\\\\\\\", + "name": "keyword.control.table.newline.latex" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)(itemize|enumerate|description|list)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?", + "name": "meta.function.environment.list.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)(tikzpicture)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "((\\\\)end)(\\{)(tikzpicture)(\\})(?:\\s*\\n)?", + "name": "meta.function.environment.latex.tikz", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)(frame)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "((\\\\)end)(\\{)(frame)(\\})", + "name": "meta.function.environment.frame.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)(mpost[*]?)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?", + "name": "meta.function.environment.latex.mpost" + },{ + "begin": "(?:\\s*)((\\\\)begin)(\\{)(\\w+[*]?)(\\})", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?", + "name": "meta.function.environment.general.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "captures": { + "1": { + "name": "storage.type.function.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.begin.latex" + }, + "4": { + "name": "support.function.general.tex" + }, + "5": { + "name": "punctuation.definition.function.latex" + }, + "6": { + "name": "punctuation.definition.end.latex" + } + }, + "match": "((\\\\)(?:newcommand|renewcommand|(?:re)?newrobustcmd|DeclareRobustCommand))\\*?({)((\\\\)[^}]*)(})" + }, + { + "begin": "((\\\\)marginpar)((?:\\[[^\\[]*?\\])*)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.marginpar.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.marginpar.begin.latex" + } + }, + "contentName": "meta.paragraph.margin.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.marginpar.end.latex" + } + }, + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)footnote)((?:\\[[^\\[]*?\\])*)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.footnote.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.footnote.begin.latex" + } + }, + "contentName": "entity.name.footnote.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.footnote.end.latex" + } + }, + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)todo)((?:\\[[^\\[]*?\\])*)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.todo.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.todo.begin.latex" + } + }, + "contentName": "entity.name.todo.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.todo.end.latex" + } + }, + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)emph)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.emph.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.emph.begin.latex" + } + }, + "contentName": "markup.italic.emph.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.emph.end.latex" + } + }, + "name": "meta.function.emph.latex", + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)textit)(\\{)", + "captures": { + "1": { + "name": "support.function.textit.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.textit.begin.latex" + } + }, + "comment": "We put the keyword in a capture and name this capture, so that disabling spell checking for “keyword” won't be inherited by the argument to \\textit{...}.\n\nPut specific matches for particular LaTeX keyword.functions before the last two more general functions", + "contentName": "markup.italic.textit.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.textit.end.latex" + } + }, + "name": "meta.function.textit.latex", + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)textbf)(\\{)", + "captures": { + "1": { + "name": "support.function.textbf.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.textbf.begin.latex" + } + }, + "contentName": "markup.bold.textbf.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.textbf.end.latex" + } + }, + "name": "meta.function.textbf.latex", + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)texttt)(\\{)", + "captures": { + "1": { + "name": "support.function.texttt.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.texttt.begin.latex" + } + }, + "contentName": "markup.raw.texttt.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.texttt.end.latex" + } + }, + "name": "meta.function.texttt.latex", + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "captures": { + "0": { + "name": "keyword.other.item.latex" + }, + "1": { + "name": "punctuation.definition.keyword.latex" + } + }, + "match": "(\\\\)item\\b", + "name": "meta.scope.item.latex" + }, + { + "begin": "((\\\\)(?:auto|foot|full|no|short|text|paren)?[cC]ite(?:al)?(?:p|s|t|author|year(?:par)?|title)?[ANP]*\\*?)((?:(?:\\[[^\\]]*\\]){0,2}\\{[\\w:.]+\\})*)(?:(\\[)[^\\]]*(\\]))?(?:(\\[)[^\\]]*(\\]))?(\\{)", + "captures": { + "1": { + "name": "keyword.control.cite.latex" + }, + "2": { + "name": "punctuation.definition.keyword.latex" + }, + "3": { + "patterns": [ + { + "include": "#autocites-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "5": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "6": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "8": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.citation.latex", + "patterns": [ + { + "match": "[\\w:.]+", + "name": "constant.other.reference.citation.latex" + } + ] + }, + { + "begin": "((\\\\)(?:\\w*[r|R]ef\\*?))(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.ref.latex" + }, + "2": { + "name": "punctuation.definition.keyword.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.reference.label.latex", + "patterns": [ + { + "match": "[a-zA-Z0-9\\.,:/*!^_-]", + "name": "constant.other.reference.label.latex" + } + ] + }, + { + "include": "#definition-label" + }, + { + "begin": "((\\\\)verb[\\*]?)\\s*((\\\\)scantokens)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "support.function.verb.latex" + }, + "4": { + "name": "punctuation.definition.verb.latex" + }, + "5": { + "name": "punctuation.definition.begin.latex" + } + }, + "contentName": "markup.raw.verb.latex", + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.end.latex" + } + }, + "name": "meta.function.verb.latex", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "captures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.verb.latex" + }, + "4": { + "name": "markup.raw.verb.latex" + }, + "5": { + "name": "punctuation.definition.verb.latex" + } + }, + "match": "((\\\\)verb[\\*]?)\\s*((?<=\\s)\\S|[^a-zA-Z])(.*?)(\\3|$)", + "name": "meta.function.verb.latex" + }, + { + "captures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + }, + "6": { + "name": "punctuation.definition.verb.latex" + }, + "7": { + "name": "markup.raw.verb.latex" + }, + "8": { + "name": "punctuation.definition.verb.latex" + }, + "9": { + "name": "punctuation.definition.verb.latex" + }, + "10": { + "name": "markup.raw.verb.latex" + }, + "11": { + "name": "punctuation.definition.verb.latex" + } + }, + "match": "((\\\\)(?:mint|mintinline))((?:\\[[^\\[]*?\\])?)(\\{)[a-zA-Z]*(\\})(?:(?:([^a-zA-Z\\{])(.*?)(\\6))|(?:(\\{)(.*?)(\\})))", + "name": "meta.function.verb.latex" + }, + { + "captures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.verb.latex" + }, + "5": { + "name": "markup.raw.verb.latex" + }, + "6": { + "name": "punctuation.definition.verb.latex" + }, + "7": { + "name": "punctuation.definition.verb.latex" + }, + "8": { + "name": "markup.raw.verb.latex" + }, + "9": { + "name": "punctuation.definition.verb.latex" + } + }, + "match": "((\\\\)[a-z]+inline)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))", + "name": "meta.function.verb.latex" + }, + { + "match": "\\\\(?:newline|pagebreak|clearpage|linebreak|pause)(?:\\b)", + "name": "keyword.control.layout.tex" + }, + { + "begin": "\\\\\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.latex" + } + }, + "end": "\\\\\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.latex" + } + }, + "name": "support.class.math.latex", + "patterns": [ + { + "include": "text.tex#math" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "\\$\\$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.latex" + } + }, + "end": "\\$\\$", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.latex" + } + }, + "name": "support.class.math.latex", + "patterns": [ + { + "match": "\\\\\\$", + "name": "constant.character.escape.tex" + }, + { + "include": "text.tex#math" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "\\\\\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.latex" + } + }, + "end": "\\\\\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.latex" + } + }, + "name": "support.class.math.latex", + "patterns": [ + { + "include": "text.tex#math" + }, + { + "include": "$base" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.latex" + } + }, + "match": "(\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\b", + "name": "constant.character.latex" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.column-specials.begin.latex" + }, + "2": { + "name": "punctuation.definition.column-specials.end.latex" + } + }, + "match": "(?:<|>)(\\{)\\$(\\})", + "name": "meta.column-specials.latex" + }, + { + "include": "text.tex" + } + ], + "repository": { + "optional-arg": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.optional.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.latex" + }, + "3": { + "name": "punctuation.definition.optional.arguments.end.latex" + } + }, + "match": "(\\[)([^\\[]*?)(\\])" + } + ] + }, + "autocites-arg": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "2": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "3": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "4": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "5": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "6": { + "name": "constant.other.reference.citation.latex" + }, + "7": { + "name": "punctuation.definition.arguments.end.latex" + }, + "8": { + "patterns": [ + { + "include": "#autocites-arg" + } + ] + } + }, + "match": "(?:(\\[)[^\\]]*(\\]))?(?:(\\[)[^\\]]*(\\]))?(\\{)([\\w:.]+)(\\})(.*)" + } + ] + }, + "minted-env": { + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + }, + "6": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "8": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "9": { + "name": "variable.parameter.function.latex" + }, + "10": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "match": "((\\\\)(?:begin|end))(\\{)(lstlisting|minted|pyglist)(\\})(?:(\\[).*(\\]))?(?:(\\{)([a-z]*)(\\}))?" + }, + "code-env": { + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + }, + "6": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.end.latex" + } + }, + "match": "(?:\\s*)((\\\\)(?:begin|end))(\\{)([a-z]*code(?:\\*)?|gnuplot|dot2tex|asy|sage[a-z]*)(\\})(?:(\\[).*(\\]))?" + }, + "definition-label": { + "begin": "((\\\\)label)(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.label.latex" + }, + "2": { + "name": "punctuation.definition.keyword.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.definition.label.latex", + "patterns": [ + { + "match": "[a-zA-Z0-9\\.,:/*!^_-]", + "name": "variable.parameter.definition.label.latex" + } + ] + } + }, + "scopeName": "text.tex.latex" +}