Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

## Unreleased

<<<<<<< HEAD
## 0.12.272 - 2025-04-24

## 0.12.271 - 2025-04-20

## 0.12.270 - 2025-04-16
Expand Down Expand Up @@ -187,6 +190,7 @@
## 0.12.183 - 2024-04-28

## 0.12.182 - 2024-04-28
>>>>>>> 7007cbcd5ab16d01aada410bfbe6ecc626ae838f

## 0.12.181 - 2024-04-25

Expand Down
339 changes: 339 additions & 0 deletions queries/latex/highlights.scm
Original file line number Diff line number Diff line change
@@ -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 "^%%&"))
2 changes: 1 addition & 1 deletion tree-sitter-langs-build.el
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion tree-sitter-langs.el
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
;; Maintainer: Jen-Chieh Shen <jcs090218@gmail.com>
;; 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

Expand Down