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.scm | 551 |
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*")) |