Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/latex/highlights.scm')
-rw-r--r--runtime/queries/latex/highlights.scm551
1 files changed, 361 insertions, 190 deletions
diff --git a/runtime/queries/latex/highlights.scm b/runtime/queries/latex/highlights.scm
index 34745d81..0a030b31 100644
--- a/runtime/queries/latex/highlights.scm
+++ b/runtime/queries/latex/highlights.scm
@@ -1,239 +1,410 @@
-;; General syntax
-(command_name) @function
-(caption
- command: _ @function)
+;; Math
+[
+ (displayed_equation)
+ (inline_formula)
+] @text.math
-(key_value_pair
- key: (_) @variable.parameter
- value: (_))
+;; 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*"))
[
- (comment)
- (line_comment)
- (block_comment)
- (comment_environment)
-] @comment
+ (generic_command_name)
+ "\\newcommand"
+ "\\renewcommand"
+ "\\DeclareRobustCommand"
+ "\\DeclareMathOperator"
+ "\\newglossaryentry"
+ "\\caption"
+ "\\label"
+ "\\newlabel"
+ "\\color"
+ "\\colorbox"
+ "\\textcolor"
+ "\\pagecolor"
+ "\\definecolor"
+ "\\definecolorset"
+ "\\newtheorem"
+ "\\declaretheorem"
+ "\\newacronym"
+] @function.macro
[
- (brack_group)
- (brack_group_argc)
-] @variable.parameter
+ "\\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
-[(operator) "="] @operator
+[
+ "\\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
-"\\item" @punctuation.special
+[
+ "\\ref"
+ "\\vref"
+ "\\Vref"
+ "\\autoref"
+ "\\pageref"
+ "\\cref"
+ "\\Cref"
+ "\\cref*"
+ "\\Cref*"
+ "\\namecref"
+ "\\nameCref"
+ "\\lcnamecref"
+ "\\namecrefs"
+ "\\nameCrefs"
+ "\\lcnamecrefs"
+ "\\labelcref"
+ "\\labelcpageref"
+] @function.macro
-((word) @punctuation.delimiter
- (#eq? @punctuation.delimiter "&"))
-["[" "]" "{" "}"] @punctuation.bracket ; "(" ")" has no syntactical meaning in LaTeX
-(math_delimiter
- left_command: _ @punctuation.delimiter
- left_delimiter: _ @punctuation.delimiter
- right_command: _ @punctuation.delimiter
- right_delimiter: _ @punctuation.delimiter
-)
+[
+ "\\crefrange"
+ "\\crefrange"
+ "\\Crefrange"
+ "\\Crefrange"
+ "\\crefrange*"
+ "\\crefrange*"
+ "\\Crefrange*"
+ "\\Crefrange*"
+] @function.macro
-;; General environments
-(begin
- command: _ @function.builtin
- name: (curly_group_text (text) @function.macro))
-(end
- command: _ @function.builtin
- name: (curly_group_text (text) @function.macro))
-
-;; Definitions and references
-(new_command_definition
- command: _ @function.macro
- declaration: (curly_group_command_name (_) @function))
-(old_command_definition
- command: _ @function.macro
- declaration: (_) @function)
-(let_command_definition
- command: _ @function.macro
- declaration: (_) @function)
-
-(environment_definition
- command: _ @function.macro
- name: (curly_group_text (_) @constant))
-
-(theorem_definition
- command: _ @function.macro
- name: (curly_group_text (_) @constant))
-
-(paired_delimiter_definition
- command: _ @function.macro
- declaration: (curly_group_command_name (_) @function))
+[
+ "\\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
-(label_definition
- command: _ @function.macro
- name: (curly_group_text (_) @label))
-(label_reference_range
- command: _ @function.macro
- from: (curly_group_text (_) @label)
- to: (curly_group_text (_) @label))
-(label_reference
- command: _ @function.macro
- names: (curly_group_text_list (_) @label))
-(label_number
- command: _ @function.macro
- name: (curly_group_text (_) @label)
- number: (_) @markup.link.label)
-(citation
- command: _ @function.macro
- keys: (curly_group_text_list) @string)
-
-(glossary_entry_definition
- command: _ @function.macro
- name: (curly_group_text (_) @string))
-(glossary_entry_reference
- command: _ @function.macro
- name: (curly_group_text (_) @string))
-
-(acronym_definition
- command: _ @function.macro
- name: (curly_group_text (_) @string))
-(acronym_reference
- command: _ @function.macro
- name: (curly_group_text (_) @string))
-
-(color_definition
- command: _ @function.macro
- name: (curly_group_text (_) @string))
-(color_reference
- command: _ @function.macro
- name: (curly_group_text (_) @string))
+[
+ "\\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
-;; Math
+[
+ "\\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
-(displayed_equation) @markup.raw.block
-(inline_formula) @markup.raw.inline
+"\\item" @punctuation.special
-(math_environment
- (begin
- command: _ @function.builtin
- name: (curly_group_text (text) @markup.raw)))
+((word) @punctuation.delimiter
+(#eq? @punctuation.delimiter "&"))
-(math_environment
- (text) @markup.raw)
+["$" "\\[" "\\]" "\\(" "\\)"] @punctuation.delimiter
-(math_environment
- (end
- command: _ @function.builtin
- name: (curly_group_text (text) @markup.raw)))
+(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)
-;; Sectioning
-(title_declaration
- command: _ @namespace
- options: (brack_group (_) @markup.heading)?
- text: (curly_group (_) @markup.heading))
+(citation
+ key: (word) @text.reference)
-(author_declaration
- command: _ @namespace
- authors: (curly_group_author_list
- ((author)+ @markup.heading)))
+(key_val_pair
+ key: (_) @variable.parameter
+ value: (_))
+
+["[" "]" "{" "}"] @punctuation.bracket ;"(" ")" is has no special meaning in LaTeX
(chapter
- command: _ @namespace
- toc: (brack_group (_) @markup.heading)?
- text: (curly_group (_) @markup.heading))
+ text: (brace_group) @markup.heading)
(part
- command: _ @namespace
- toc: (brack_group (_) @markup.heading)?
- text: (curly_group (_) @markup.heading))
+ text: (brace_group) @markup.heading)
(section
- command: _ @namespace
- toc: (brack_group (_) @markup.heading)?
- text: (curly_group (_) @markup.heading))
+ text: (brace_group) @markup.heading)
(subsection
- command: _ @namespace
- toc: (brack_group (_) @markup.heading)?
- text: (curly_group (_) @markup.heading))
+ text: (brace_group) @markup.heading)
(subsubsection
- command: _ @namespace
- toc: (brack_group (_) @markup.heading)?
- text: (curly_group (_) @markup.heading))
+ text: (brace_group) @markup.heading)
(paragraph
- command: _ @namespace
- toc: (brack_group (_) @markup.heading)?
- text: (curly_group (_) @markup.heading))
+ text: (brace_group) @markup.heading)
(subparagraph
- command: _ @namespace
- toc: (brack_group (_) @markup.heading)?
- text: (curly_group (_) @markup.heading))
+ text: (brace_group) @markup.heading)
-;; Beamer frames
-(generic_environment
+((environment
(begin
- name: (curly_group_text
- (text) @markup.heading)
- (#any-of? @markup.heading "frame"))
- .
- (curly_group (_) @markup.heading))
+ name: (word) @_frame)
+ (brace_group
+ child: (text) @markup.heading))
+ (#eq? @_frame "frame"))
((generic_command
- command: (command_name) @_name
- arg: (curly_group
+ name:(generic_command_name) @_name
+ arg: (brace_group
(text) @markup.heading))
- (#eq? @_name "\\frametitle"))
+ (#eq? @_name "\\frametitle"))
;; Formatting
+
((generic_command
- command: (command_name) @_name
- arg: (curly_group (_) @markup.italic))
- (#eq? @_name "\\emph"))
+ name:(generic_command_name) @_name
+ arg: (_) @markup.italic)
+ (#eq? @_name "\\emph"))
((generic_command
- command: (command_name) @_name
- arg: (curly_group (_) @markup.italic))
- (#match? @_name "^(\\\\textit|\\\\mathit)$"))
+ name:(generic_command_name) @_name
+ arg: (_) @markup.italic)
+ (#match? @_name "^(\\\\textit|\\\\mathit)$"))
((generic_command
- command: (command_name) @_name
- arg: (curly_group (_) @markup.bold))
- (#match? @_name "^(\\\\textbf|\\\\mathbf)$"))
+ name:(generic_command_name) @_name
+ arg: (_) @markup.bold)
+ (#match? @_name "^(\\\\textbf|\\\\mathbf)$"))
((generic_command
- command: (command_name) @_name
+ name:(generic_command_name) @_name
.
- arg: (curly_group (_) @markup.link.uri))
- (#match? @_name "^(\\\\url|\\\\href)$"))
-
-;; File inclusion commands
-(class_include
- command: _ @keyword.storage.type
- path: (curly_group_path) @string)
-
-(package_include
- command: _ @keyword.storage.type
- paths: (curly_group_path_list) @string)
-
-(latex_include
- command: _ @keyword.control.import
- path: (curly_group_path) @string)
-(import_include
- command: _ @keyword.control.import
- directory: (curly_group_path) @string
- file: (curly_group_path) @string)
-
-(bibtex_include
- command: _ @keyword.control.import
- path: (curly_group_path) @string)
-(biblatex_include
- "\\addbibresource" @include
- glob: (curly_group_glob_pattern) @string.regex)
-
-(graphics_include
- command: _ @keyword.control.import
- path: (curly_group_path) @string)
-(tikz_library_import
- command: _ @keyword.control.import
- paths: (curly_group_path_list) @string)
+ 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*"))