diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f8e2cc71..679a0764e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## Unreleased +<<<<<<< HEAD +## 0.12.272 - 2025-04-24 + ## 0.12.271 - 2025-04-20 ## 0.12.270 - 2025-04-16 @@ -187,6 +190,7 @@ ## 0.12.183 - 2024-04-28 ## 0.12.182 - 2024-04-28 +>>>>>>> 7007cbcd5ab16d01aada410bfbe6ecc626ae838f ## 0.12.181 - 2024-04-25 diff --git a/queries/latex/highlights.scm b/queries/latex/highlights.scm new file mode 100644 index 000000000..1d795fc23 --- /dev/null +++ b/queries/latex/highlights.scm @@ -0,0 +1,339 @@ +; General syntax +(command_name) @function + +(text_mode + [ + "\\text" + "\\intertext" + "\\shortintertext" + ] @function) + +(caption + command: _ @function) + +(key_value_pair + key: (_) @variable.parameter + value: (_)) + +[ + (brack_group) + (brack_group_argc) +] @variable.parameter + +[ + (operator) + "=" + "_" + "^" +] @operator + +"\\item" @punctuation.special + +((word) @punctuation.delimiter + (#eq? @punctuation.delimiter "&")) + +[ + "[" + "]" + "{" + "}" +] @punctuation.bracket ; "(" ")" has no syntactical meaning in LaTeX + +; General environments +(begin + command: _ @module + name: (curly_group_text + (text) @label)) + +(end + command: _ @module + name: (curly_group_text + (text) @label)) + +; 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 + (_) @markup.link)) + +(theorem_definition + command: _ @function.macro + name: (curly_group_text + (_) @label)) + +(paired_delimiter_definition + command: _ @function.macro + declaration: (curly_group_command_name + (_) @function)) + +(label_definition + command: _ @function.macro + name: (curly_group_text + (_) @markup.link)) + +(label_reference_range + command: _ @function.macro + from: (curly_group_text + (_) @markup.link) + to: (curly_group_text + (_) @markup.link)) + +(label_reference + command: _ @function.macro + names: (curly_group_text_list + (_) @markup.link)) + +(label_number + command: _ @function.macro + name: (curly_group_text + (_) @markup.link) + number: (_) @markup.link) + +(citation + command: _ @function.macro + keys: (curly_group_text_list) @markup.link) + +(glossary_entry_definition + command: _ @function.macro + name: (curly_group_text + (_) @markup.link)) + +(glossary_entry_reference + command: _ @function.macro + name: (curly_group_text + (_) @markup.link)) + +(acronym_definition + command: _ @function.macro + name: (curly_group_text + (_) @markup.link)) + +(acronym_reference + command: _ @function.macro + name: (curly_group_text + (_) @markup.link)) + +(color_definition + command: _ @function.macro + name: (curly_group_text + (_) @markup.link)) + +(color_reference + command: _ @function.macro + name: (curly_group_text + (_) @markup.link)) + +; Formatting +(text_mode + content: (curly_group + (_) @none @spell)) + +(math_environment + (begin + command: _ @markup.math + name: (curly_group_text + (_) @markup.math))) + +(math_environment + (_) @markup.math) + +(math_environment + (end + command: _ @markup.math + name: (curly_group_text + (_) @markup.math))) + +; Sectioning +(title_declaration + command: _ @module + options: (brack_group + (_) @markup.heading.1)? + text: (curly_group + (_) @markup.heading.1)) + +(author_declaration + command: _ @module + authors: (curly_group_author_list + (author)+ @markup.heading.1)) + +(chapter + command: _ @module + toc: (brack_group + (_) @markup.heading.2)? + text: (curly_group + (_) @markup.heading.2)) + +(part + command: _ @module + toc: (brack_group + (_) @markup.heading.2)? + text: (curly_group + (_) @markup.heading.2)) + +(section + command: _ @module + toc: (brack_group + (_) @markup.heading.3)? + text: (curly_group + (_) @markup.heading.3)) + +(subsection + command: _ @module + toc: (brack_group + (_) @markup.heading.4)? + text: (curly_group + (_) @markup.heading.4)) + +(subsubsection + command: _ @module + toc: (brack_group + (_) @markup.heading.5)? + text: (curly_group + (_) @markup.heading.5)) + +(paragraph + command: _ @module + toc: (brack_group + (_) @markup.heading.6)? + text: (curly_group + (_) @markup.heading.6)) + +(subparagraph + command: _ @module + toc: (brack_group + (_) @markup.heading.6)? + text: (curly_group + (_) @markup.heading.6)) + +; Beamer frames +(generic_environment + (begin + name: (curly_group_text + (text) @label) + (#any-of? @label "frame")) + . + (curly_group + (_) @markup.heading)) + +((generic_command + command: (command_name) @_name + arg: (curly_group + (text) @markup.heading)) + (#eq? @_name "\\frametitle")) + +((generic_command + command: (command_name) @_name + arg: (curly_group + (_) @markup.italic)) + (#eq? @_name "\\emph")) + +((generic_command + command: (command_name) @_name + arg: (curly_group + (_) @markup.italic)) + (#any-of? @_name "\\textit" "\\mathit")) + +((generic_command + command: (command_name) @_name + arg: (curly_group + (_) @markup.strong)) + (#any-of? @_name "\\textbf" "\\mathbf")) + +((generic_command + command: (command_name) @_name + . + arg: (curly_group + (_) @markup.link.url)) + (#any-of? @_name "\\url" "\\href")) + +; File inclusion commands +(class_include + command: _ @keyword.import + path: (curly_group_path) @string) + +(package_include + command: _ @keyword.import + paths: (curly_group_path_list) @string) + +(latex_include + command: _ @keyword.import + path: (curly_group_path) @string) + +(import_include + command: _ @keyword.import + directory: (curly_group_path) @string + file: (curly_group_path) @string) + +(bibstyle_include + command: _ @keyword.import + path: (curly_group_path) @string) + +(bibtex_include + command: _ @keyword.import + paths: (curly_group_path_list) @string) + +(biblatex_include + "\\addbibresource" @keyword.import + glob: (curly_group_glob_pattern) @string.regexp) + +(graphics_include + command: _ @keyword.import + path: (curly_group_path) @string) + +(tikz_library_import + command: _ @keyword.import + paths: (curly_group_path_list) @string) + +(text) @spell + +(inline_formula) @nospell + +(displayed_equation) @nospell + +(key_value_pair) @nospell + +(generic_environment + begin: _ @nospell + end: _ @nospell) + +(citation + keys: _ @nospell) + +(command_name) @nospell + +(label_definition) @nospell + +(label_reference) @nospell + +(label_reference_range) @nospell + +; Math +[ + (displayed_equation) + (inline_formula) +] @markup.math + +[ + (line_comment) + (block_comment) + (comment_environment) +] @comment @spell + +((line_comment) @keyword.directive + (#lua-match? @keyword.directive "^%% !TeX")) + +((line_comment) @keyword.directive + (#lua-match? @keyword.directive "^%%&")) diff --git a/tree-sitter-langs-build.el b/tree-sitter-langs-build.el index 278543584..298a2e0ba 100644 --- a/tree-sitter-langs-build.el +++ b/tree-sitter-langs-build.el @@ -233,7 +233,7 @@ latest commit." ;; --------------------------------------------------------------------------- ;;; Building language grammars. -(defconst tree-sitter-langs--bundle-version "0.12.271" +(defconst tree-sitter-langs--bundle-version "0.12.272" "Version of the grammar bundle. This should be bumped whenever a language submodule is updated, which should be infrequent (grammar-only changes). It is different from the version of diff --git a/tree-sitter-langs.el b/tree-sitter-langs.el index 595a83f83..81ba1c031 100644 --- a/tree-sitter-langs.el +++ b/tree-sitter-langs.el @@ -6,7 +6,7 @@ ;; Maintainer: Jen-Chieh Shen ;; Keywords: languages tools parsers tree-sitter ;; Homepage: https://github.com/emacs-tree-sitter/tree-sitter-langs -;; Version: 0.12.271 +;; Version: 0.12.272 ;; Package-Requires: ((emacs "25.1") (tree-sitter "0.15.0")) ;; SPDX-License-Identifier: MIT