summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2022-02-05 16:09:35 +0100
committerGitHub <noreply@github.com>2022-02-05 16:09:35 +0100
commit8e780a4c9dd735d031331798b4845e6d334bf857 (patch)
treea8edf84bdf132679ce9fd3e2490b3b2f16c7f428
parentc999f9aa135c0ea36981a886fe2a87733cb6d611 (diff)
refactor(latex): improve queries (#2457)
-rw-r--r--queries/latex/highlights.scm476
-rw-r--r--queries/latex/injections.scm7
2 files changed, 167 insertions, 316 deletions
diff --git a/queries/latex/highlights.scm b/queries/latex/highlights.scm
index 3009c07e..fff1e5b0 100644
--- a/queries/latex/highlights.scm
+++ b/queries/latex/highlights.scm
@@ -1,260 +1,22 @@
-;; Math
-[
- (displayed_equation)
- (inline_formula)
-] @text.math
+;; General syntax
+(ERROR) @error
-((generic_environment
- (begin
- name: (curly_group_text
- (text) @_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*"))
+(command_name) @function
-;; File inclusion commands
-[
- "\\documentclass"
- "\\usepackage"
- "\\input"
- "\\include"
- "\\subfile"
- "\\subfileinclude"
- "\\subfileinclude"
- "\\includegraphics"
- "\\addbibresource"
- "\\bibliography"
- "\\includesvg"
- "\\includeinkscape"
- "\\usepgflibrary"
- "\\usetikzlibrary"
-] @include
-
-;; Definitions
-[
- (command_name)
- "\\newcommand"
- "\\renewcommand"
- "\\DeclareRobustCommand"
- "\\DeclareMathOperator"
- "\\newglossaryentry"
- "\\caption"
- "\\label"
- "\\newlabel"
- "\\color"
- "\\colorbox"
- "\\textcolor"
- "\\pagecolor"
- "\\definecolor"
- "\\definecolorset"
- "\\newtheorem"
- "\\declaretheorem"
- "\\newacronym"
-] @function.macro
-
-;; References (labels)
-[
- "\\ref"
- "\\eqref"
- "\\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
-
-;; References (bibliography)
-[
- "\\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
-
-;; References (glossary)
-[
- "\\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
-
-;; Acronyms
-[
- "\\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
+(key_value_pair
+ key: (_) @parameter
+ value: (_))
-;; General syntax
[
(line_comment)
(block_comment)
(comment_environment)
] @comment
-(brack_group) @parameter
+[
+ (brack_group)
+ (brack_group_argc)
+] @parameter
[(operator) "="] @operator
@@ -263,77 +25,165 @@
((word) @punctuation.delimiter
(#eq? @punctuation.delimiter "&"))
-["$" "\\[" "\\]" "\\(" "\\)"] @punctuation.delimiter
+["[" "]" "{" "}"] @punctuation.bracket ; "(" ")" has no syntactical meaning in LaTeX
+
+;; General environments
+(begin
+ command: _ @text.environment
+ name: (curly_group_text
+ (text) @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
+ command: _ @text.environment
+ name: (curly_group_text
+ (text) @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*"))
+
+;; 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)
+
+(theorem_definition
+ command: _ @function.macro
+ name: (curly_group_text (_) @text.environment.name))
(label_definition
+ command: _ @function.macro
name: (_) @text.reference)
(label_reference_range
+ command: _ @function.macro
from: (_) @text.reference
to: (_) @text.reference)
(label_reference
+ command: _ @function.macro
names: (_) @text.reference)
(label_number
+ command: _ @function.macro
name: (_) @text.reference
number: (_) @text.reference)
(citation
+ command: _ @function.macro
keys: (curly_group_text_list) @text.reference)
-(key_value_pair
- key: (_) @parameter
- value: (_))
-
-["[" "]" "{" "}"] @punctuation.bracket ; "(" ")" has no syntactical meaning in LaTeX
-
-;; Sectioning
+(glossary_entry_definition
+ command: _ @function.macro
+ name: (_) @text.reference)
+(glossary_entry_reference
+ command: _ @function.macro
+ name: (_) @text.reference)
+
+(acronym_definition
+ command: _ @function.macro
+ name: (_) @text.reference)
+(acronym_reference
+ command: _ @function.macro
+ name: (_) @text.reference)
+
+(color_definition
+ command: _ @function.macro
+ name: (_) @text.reference)
+(color_reference
+ command: _ @function.macro
+ name: (_) @text.reference)
+;; Math
[
- "\\part"
- "\\chapter"
- "\\section"
- "\\subsection"
- "\\subsubsection"
- "\\paragraph"
- "\\subparagraph"
-
- "\\addpart"
- "\\addchap"
- "\\addsec"
-
- "\\part*"
- "\\chapter*"
- "\\section*"
- "\\subsection*"
- "\\subsubsection*"
- "\\paragraph*"
- "\\subparagraph*"
-
- "\\addpart*"
- "\\addchap*"
- "\\addsec*"
-] @namespace
+ (displayed_equation)
+ (inline_formula)
+] @text.math
+
+((generic_environment
+ (begin
+ command: _ @text.math
+ name: (curly_group_text
+ (text) @_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_environment
+ (end
+ command: _ @text.math
+ name: (curly_group_text
+ (text) @_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*"))
+;; Sectioning
(chapter
+ command: _ @namespace
text: (curly_group) @text.title)
(part
+ command: _ @namespace
text: (curly_group) @text.title)
(section
+ command: _ @namespace
text: (curly_group) @text.title)
(subsection
+ command: _ @namespace
text: (curly_group) @text.title)
(subsubsection
+ command: _ @namespace
text: (curly_group) @text.title)
(paragraph
+ command: _ @namespace
text: (curly_group) @text.title)
(subparagraph
+ command: _ @namespace
text: (curly_group) @text.title)
+;; Beamer frames
(generic_environment
(begin
name: (curly_group_text
@@ -370,40 +220,34 @@
arg: (curly_group (_) @text.uri))
(#match? @_name "^(\\\\url|\\\\href)$"))
-;; General environments
-[
- "\\begin"
- "\\end"
-] @text.environment
-
-(begin
- name: (curly_group_text
- (text) @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: (curly_group_text
- (text) @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*"))
+;; File inclusion commands
+(class_include
+ command: _ @include
+ path: (curly_group_path) @string)
+
+(package_include
+ command: _ @include
+ paths: (curly_group_path_list) @string)
+
+(latex_include
+ command: _ @include
+ path: (curly_group_path) @string)
+(import_include
+ command: _ @include
+ directory: (curly_group_path) @string
+ file: (curly_group_path) @string)
+
+(bibtex_include
+ command: _ @include
+ path: (curly_group_path) @string)
+(biblatex_include
+ "\\addbibresource" @include
+ glob: (curly_group_glob_pattern) @string.regex)
+
+(graphics_include
+ command: _ @include
+ path: (curly_group_path) @string)
+(tikz_library_import
+ command: _ @include
+ path: (curly_group_text) @string)
-(ERROR) @error
diff --git a/queries/latex/injections.scm b/queries/latex/injections.scm
index 8c611535..e68c6d93 100644
--- a/queries/latex/injections.scm
+++ b/queries/latex/injections.scm
@@ -13,3 +13,10 @@
language: (curly_group_text
(text) @language))
(source_code) @content)
+
+((generic_environment
+ (begin
+ name: (curly_group_text
+ (text) @_env))) @c
+ (#any-of? @_env "asy" "asydef"))
+