|
|
|
;; Math
|
|
|
|
[
|
|
|
|
(displayed_equation)
|
|
|
|
(inline_formula)
|
|
|
|
] @text.math
|
|
|
|
|
|
|
|
;; This highlights the whole environment like vimtex does
|
|
|
|
((environment
|
|
|
|
(begin
|
|
|
|
name: (word) @_env)) @text.math
|
|
|
|
(#any-of? @_env
|
|
|
|
"displaymath" "displaymath*"
|
|
|
|
"equation" "equation*"
|
|
|
|
"multline" "multline*"
|
|
|
|
"eqnarray" "eqnarray*"
|
|
|
|
"align" "align*"
|
|
|
|
"array" "array*"
|
|
|
|
"split" "split*"
|
|
|
|
"alignat" "alignat*"
|
|
|
|
"gather" "gather*"
|
|
|
|
"flalign" "flalign*"))
|
|
|
|
|
|
|
|
[
|
|
|
|
(generic_command_name)
|
|
|
|
"\\newcommand"
|
|
|
|
"\\renewcommand"
|
|
|
|
"\\DeclareRobustCommand"
|
|
|
|
"\\DeclareMathOperator"
|
|
|
|
"\\newglossaryentry"
|
|
|
|
"\\caption"
|
|
|
|
"\\label"
|
|
|
|
"\\newlabel"
|
|
|
|
"\\color"
|
|
|
|
"\\colorbox"
|
|
|
|
"\\textcolor"
|
|
|
|
"\\pagecolor"
|
|
|
|
"\\definecolor"
|
|
|
|
"\\definecolorset"
|
|
|
|
"\\newtheorem"
|
|
|
|
"\\declaretheorem"
|
|
|
|
"\\newacronym"
|
|
|
|
] @function.macro
|
|
|
|
|
|
|
|
[
|
|
|
|
"\\ref"
|
|
|
|
"\\vref"
|
|
|
|
"\\Vref"
|
|
|
|
"\\autoref"
|
|
|
|
"\\pageref"
|
|
|
|
"\\cref"
|
|
|
|
"\\Cref"
|
|
|
|
"\\cref*"
|
|
|
|
"\\Cref*"
|
|
|
|
"\\namecref"
|
|
|
|
"\\nameCref"
|
|
|
|
"\\lcnamecref"
|
|
|
|
"\\namecrefs"
|
|
|
|
"\\nameCrefs"
|
|
|
|
"\\lcnamecrefs"
|
|
|
|
"\\labelcref"
|
|
|
|
"\\labelcpageref"
|
|
|
|
"\\crefrange"
|
|
|
|
"\\crefrange"
|
|
|
|
"\\Crefrange"
|
|
|
|
"\\Crefrange"
|
|
|
|
"\\crefrange*"
|
|
|
|
"\\crefrange*"
|
|
|
|
"\\Crefrange*"
|
|
|
|
"\\Crefrange*"
|
|
|
|
] @function.macro
|
|
|
|
|
|
|
|
[
|
|
|
|
"\\cite"
|
|
|
|
"\\cite*"
|
|
|
|
"\\Cite"
|
|
|
|
"\\nocite"
|
|
|
|
"\\citet"
|
|
|
|
"\\citep"
|
|
|
|
"\\citet*"
|
|
|
|
"\\citep*"
|
|
|
|
"\\citeauthor"
|
|
|
|
"\\citeauthor*"
|
|
|
|
"\\Citeauthor"
|
|
|
|
"\\Citeauthor*"
|
|
|
|
"\\citetitle"
|
|
|
|
"\\citetitle*"
|
|
|
|
"\\citeyear"
|
|
|
|
"\\citeyear*"
|
|
|
|
"\\citedate"
|
|
|
|
"\\citedate*"
|
|
|
|
"\\citeurl"
|
|
|
|
"\\fullcite"
|
|
|
|
"\\citeyearpar"
|
|
|
|
"\\citealt"
|
|
|
|
"\\citealp"
|
|
|
|
"\\citetext"
|
|
|
|
"\\parencite"
|
|
|
|
"\\parencite*"
|
|
|
|
"\\Parencite"
|
|
|
|
"\\footcite"
|
|
|
|
"\\footfullcite"
|
|
|
|
"\\footcitetext"
|
|
|
|
"\\textcite"
|
|
|
|
"\\Textcite"
|
|
|
|
"\\smartcite"
|
|
|
|
"\\Smartcite"
|
|
|
|
"\\supercite"
|
|
|
|
"\\autocite"
|
|
|
|
"\\Autocite"
|
|
|
|
"\\autocite*"
|
|
|
|
"\\Autocite*"
|
|
|
|
"\\volcite"
|
|
|
|
"\\Volcite"
|
|
|
|
"\\pvolcite"
|
|
|
|
"\\Pvolcite"
|
|
|
|
"\\fvolcite"
|
|
|
|
"\\ftvolcite"
|
|
|
|
"\\svolcite"
|
|
|
|
"\\Svolcite"
|
|
|
|
"\\tvolcite"
|
|
|
|
"\\Tvolcite"
|
|
|
|
"\\avolcite"
|
|
|
|
"\\Avolcite"
|
|
|
|
"\\notecite"
|
|
|
|
"\\notecite"
|
|
|
|
"\\pnotecite"
|
|
|
|
"\\Pnotecite"
|
|
|
|
"\\fnotecite"
|
|
|
|
] @function.macro
|
|
|
|
|
|
|
|
[
|
|
|
|
"\\ref"
|
|
|
|
"\\vref"
|
|
|
|
"\\Vref"
|
|
|
|
"\\autoref"
|
|
|
|
"\\pageref"
|
|
|
|
"\\cref"
|
|
|
|
"\\Cref"
|
|
|
|
"\\cref*"
|
|
|
|
"\\Cref*"
|
|
|
|
"\\namecref"
|
|
|
|
"\\nameCref"
|
|
|
|
"\\lcnamecref"
|
|
|
|
"\\namecrefs"
|
|
|
|
"\\nameCrefs"
|
|
|
|
"\\lcnamecrefs"
|
|
|
|
"\\labelcref"
|
|
|
|
"\\labelcpageref"
|
|
|
|
] @function.macro
|
|
|
|
|
|
|
|
|
|
|
|
[
|
|
|
|
"\\crefrange"
|
|
|
|
"\\crefrange"
|
|
|
|
"\\Crefrange"
|
|
|
|
"\\Crefrange"
|
|
|
|
"\\crefrange*"
|
|
|
|
"\\crefrange*"
|
|
|
|
"\\Crefrange*"
|
|
|
|
"\\Crefrange*"
|
|
|
|
] @function.macro
|
|
|
|
|
|
|
|
|
|
|
|
[
|
|
|
|
"\\gls"
|
|
|
|
"\\Gls"
|
|
|
|
"\\GLS"
|
|
|
|
"\\glspl"
|
|
|
|
"\\Glspl"
|
|
|
|
"\\GLSpl"
|
|
|
|
"\\glsdisp"
|
|
|
|
"\\glslink"
|
|
|
|
"\\glstext"
|
|
|
|
"\\Glstext"
|
|
|
|
"\\GLStext"
|
|
|
|
"\\glsfirst"
|
|
|
|
"\\Glsfirst"
|
|
|
|
"\\GLSfirst"
|
|
|
|
"\\glsplural"
|
|
|
|
"\\Glsplural"
|
|
|
|
"\\GLSplural"
|
|
|
|
"\\glsfirstplural"
|
|
|
|
"\\Glsfirstplural"
|
|
|
|
"\\GLSfirstplural"
|
|
|
|
"\\glsname"
|
|
|
|
"\\Glsname"
|
|
|
|
"\\GLSname"
|
|
|
|
"\\glssymbol"
|
|
|
|
"\\Glssymbol"
|
|
|
|
"\\glsdesc"
|
|
|
|
"\\Glsdesc"
|
|
|
|
"\\GLSdesc"
|
|
|
|
"\\glsuseri"
|
|
|
|
"\\Glsuseri"
|
|
|
|
"\\GLSuseri"
|
|
|
|
"\\glsuserii"
|
|
|
|
"\\Glsuserii"
|
|
|
|
"\\GLSuserii"
|
|
|
|
"\\glsuseriii"
|
|
|
|
"\\Glsuseriii"
|
|
|
|
"\\GLSuseriii"
|
|
|
|
"\\glsuseriv"
|
|
|
|
"\\Glsuseriv"
|
|
|
|
"\\GLSuseriv"
|
|
|
|
"\\glsuserv"
|
|
|
|
"\\Glsuserv"
|
|
|
|
"\\GLSuserv"
|
|
|
|
"\\glsuservi"
|
|
|
|
"\\Glsuservi"
|
|
|
|
"\\GLSuservi"
|
|
|
|
] @function.macro
|
|
|
|
|
|
|
|
|
|
|
|
[
|
|
|
|
"\\acrshort"
|
|
|
|
"\\Acrshort"
|
|
|
|
"\\ACRshort"
|
|
|
|
"\\acrshortpl"
|
|
|
|
"\\Acrshortpl"
|
|
|
|
"\\ACRshortpl"
|
|
|
|
"\\acrlong"
|
|
|
|
"\\Acrlong"
|
|
|
|
"\\ACRlong"
|
|
|
|
"\\acrlongpl"
|
|
|
|
"\\Acrlongpl"
|
|
|
|
"\\ACRlongpl"
|
|
|
|
"\\acrfull"
|
|
|
|
"\\Acrfull"
|
|
|
|
"\\ACRfull"
|
|
|
|
"\\acrfullpl"
|
|
|
|
"\\Acrfullpl"
|
|
|
|
"\\ACRfullpl"
|
|
|
|
"\\acs"
|
|
|
|
"\\Acs"
|
|
|
|
"\\acsp"
|
|
|
|
"\\Acsp"
|
|
|
|
"\\acl"
|
|
|
|
"\\Acl"
|
|
|
|
"\\aclp"
|
|
|
|
"\\Aclp"
|
|
|
|
"\\acf"
|
|
|
|
"\\Acf"
|
|
|
|
"\\acfp"
|
|
|
|
"\\Acfp"
|
|
|
|
"\\ac"
|
|
|
|
"\\Ac"
|
|
|
|
"\\acp"
|
|
|
|
"\\glsentrylong"
|
|
|
|
"\\Glsentrylong"
|
|
|
|
"\\glsentrylongpl"
|
|
|
|
"\\Glsentrylongpl"
|
|
|
|
"\\glsentryshort"
|
|
|
|
"\\Glsentryshort"
|
|
|
|
"\\glsentryshortpl"
|
|
|
|
"\\Glsentryshortpl"
|
|
|
|
"\\glsentryfullpl"
|
|
|
|
"\\Glsentryfullpl"
|
|
|
|
] @function.macro
|
|
|
|
|
|
|
|
(comment) @comment
|
|
|
|
|
|
|
|
(bracket_group) @variable.parameter
|
|
|
|
|
|
|
|
[(math_operator) "="] @operator
|
|
|
|
|
|
|
|
[
|
|
|
|
"\\usepackage"
|
|
|
|
"\\documentclass"
|
|
|
|
"\\input"
|
|
|
|
"\\include"
|
|
|
|
"\\subfile"
|
|
|
|
"\\subfileinclude"
|
|
|
|
"\\subfileinclude"
|
|
|
|
"\\includegraphics"
|
|
|
|
"\\addbibresource"
|
|
|
|
"\\bibliography"
|
|
|
|
"\\includesvg"
|
|
|
|
"\\includeinkscape"
|
|
|
|
"\\usepgflibrary"
|
|
|
|
"\\usetikzlibrary"
|
|
|
|
] @keyword.control.import
|
|
|
|
|
|
|
|
[
|
|
|
|
"\\part"
|
|
|
|
"\\chapter"
|
|
|
|
"\\section"
|
|
|
|
"\\subsection"
|
|
|
|
"\\subsubsection"
|
|
|
|
"\\paragraph"
|
|
|
|
"\\subparagraph"
|
|
|
|
] @type
|
|
|
|
|
|
|
|
"\\item" @punctuation.special
|
|
|
|
|
|
|
|
((word) @punctuation.delimiter
|
|
|
|
(#eq? @punctuation.delimiter "&"))
|
|
|
|
|
|
|
|
["$" "\\[" "\\]" "\\(" "\\)"] @punctuation.delimiter
|
|
|
|
|
|
|
|
(label_definition
|
|
|
|
name: (_) @text.reference)
|
|
|
|
(label_reference
|
|
|
|
label: (_) @text.reference)
|
|
|
|
(equation_label_reference
|
|
|
|
label: (_) @text.reference)
|
|
|
|
(label_reference
|
|
|
|
label: (_) @text.reference)
|
|
|
|
(label_number
|
|
|
|
label: (_) @text.reference)
|
|
|
|
|
|
|
|
(citation
|
|
|
|
key: (word) @text.reference)
|
|
|
|
|
|
|
|
(key_val_pair
|
|
|
|
key: (_) @variable.parameter
|
|
|
|
value: (_))
|
|
|
|
|
|
|
|
["[" "]" "{" "}"] @punctuation.bracket ;"(" ")" is has no special meaning in LaTeX
|
|
|
|
|
|
|
|
(chapter
|
|
|
|
text: (brace_group) @markup.heading)
|
|
|
|
|
|
|
|
(part
|
|
|
|
text: (brace_group) @markup.heading)
|
|
|
|
|
|
|
|
(section
|
|
|
|
text: (brace_group) @markup.heading)
|
|
|
|
|
|
|
|
(subsection
|
|
|
|
text: (brace_group) @markup.heading)
|
|
|
|
|
|
|
|
(subsubsection
|
|
|
|
text: (brace_group) @markup.heading)
|
|
|
|
|
|
|
|
(paragraph
|
|
|
|
text: (brace_group) @markup.heading)
|
|
|
|
|
|
|
|
(subparagraph
|
|
|
|
text: (brace_group) @markup.heading)
|
|
|
|
|
|
|
|
((environment
|
|
|
|
(begin
|
|
|
|
name: (word) @_frame)
|
|
|
|
(brace_group
|
|
|
|
child: (text) @markup.heading))
|
|
|
|
(#eq? @_frame "frame"))
|
|
|
|
|
|
|
|
((generic_command
|
|
|
|
name:(generic_command_name) @_name
|
|
|
|
arg: (brace_group
|
|
|
|
(text) @markup.heading))
|
|
|
|
(#eq? @_name "\\frametitle"))
|
|
|
|
|
|
|
|
;; Formatting
|
|
|
|
|
|
|
|
((generic_command
|
|
|
|
name:(generic_command_name) @_name
|
|
|
|
arg: (_) @markup.italic)
|
|
|
|
(#eq? @_name "\\emph"))
|
|
|
|
|
|
|
|
((generic_command
|
|
|
|
name:(generic_command_name) @_name
|
|
|
|
arg: (_) @markup.italic)
|
|
|
|
(#match? @_name "^(\\\\textit|\\\\mathit)$"))
|
|
|
|
|
|
|
|
((generic_command
|
|
|
|
name:(generic_command_name) @_name
|
|
|
|
arg: (_) @markup.bold)
|
|
|
|
(#match? @_name "^(\\\\textbf|\\\\mathbf)$"))
|
|
|
|
|
|
|
|
((generic_command
|
|
|
|
name:(generic_command_name) @_name
|
|
|
|
.
|
|
|
|
arg: (_) @markup.link.url)
|
|
|
|
(#match? @_name "^(\\\\url|\\\\href)$"))
|
|
|
|
|
|
|
|
(ERROR) @error
|
|
|
|
|
|
|
|
[
|
|
|
|
"\\begin"
|
|
|
|
"\\end"
|
|
|
|
] @text.environment
|
|
|
|
|
|
|
|
(begin
|
|
|
|
name: (_) @text.environment.name
|
|
|
|
(#not-any-of? @text.environment.name
|
|
|
|
"displaymath" "displaymath*"
|
|
|
|
"equation" "equation*"
|
|
|
|
"multline" "multline*"
|
|
|
|
"eqnarray" "eqnarray*"
|
|
|
|
"align" "align*"
|
|
|
|
"array" "array*"
|
|
|
|
"split" "split*"
|
|
|
|
"alignat" "alignat*"
|
|
|
|
"gather" "gather*"
|
|
|
|
"flalign" "flalign*"))
|
|
|
|
|
|
|
|
(end
|
|
|
|
name: (_) @text.environment.name
|
|
|
|
(#not-any-of? @text.environment.name
|
|
|
|
"displaymath" "displaymath*"
|
|
|
|
"equation" "equation*"
|
|
|
|
"multline" "multline*"
|
|
|
|
"eqnarray" "eqnarray*"
|
|
|
|
"align" "align*"
|
|
|
|
"array" "array*"
|
|
|
|
"split" "split*"
|
|
|
|
"alignat" "alignat*"
|
|
|
|
"gather" "gather*"
|
|
|
|
"flalign" "flalign*"))
|