diff options
| author | Christian Clason <c.clason@uni-graz.at> | 2022-02-05 16:09:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-05 16:09:35 +0100 |
| commit | 8e780a4c9dd735d031331798b4845e6d334bf857 (patch) | |
| tree | a8edf84bdf132679ce9fd3e2490b3b2f16c7f428 | |
| parent | c999f9aa135c0ea36981a886fe2a87733cb6d611 (diff) | |
refactor(latex): improve queries (#2457)
| -rw-r--r-- | queries/latex/highlights.scm | 476 | ||||
| -rw-r--r-- | queries/latex/injections.scm | 7 |
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")) + |
