|
|
|
;; General syntax
|
|
|
|
(ERROR) @error
|
|
|
|
|
|
|
|
(command_name) @function
|
|
|
|
(caption
|
|
|
|
command: _ @function)
|
|
|
|
|
|
|
|
(key_value_pair
|
|
|
|
key: (_) @variable.parameter
|
|
|
|
value: (_))
|
|
|
|
|
|
|
|
[
|
|
|
|
(comment)
|
|
|
|
(line_comment)
|
|
|
|
(block_comment)
|
|
|
|
(comment_environment)
|
|
|
|
] @comment
|
|
|
|
|
|
|
|
[
|
|
|
|
(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
|
|
|
|
(math_delimiter
|
|
|
|
left_command: _ @punctuation.delimiter
|
|
|
|
left_delimiter: _ @punctuation.delimiter
|
|
|
|
right_command: _ @punctuation.delimiter
|
|
|
|
right_delimiter: _ @punctuation.delimiter
|
|
|
|
)
|
|
|
|
|
|
|
|
;; 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))
|
|
|
|
|
|
|
|
(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))
|
|
|
|
|
|
|
|
;; Math
|
|
|
|
|
|
|
|
(displayed_equation) @markup.raw.block
|
|
|
|
(inline_formula) @markup.raw.inline
|
|
|
|
|
|
|
|
(math_environment
|
|
|
|
(begin
|
|
|
|
command: _ @function.builtin
|
|
|
|
name: (curly_group_text (text) @markup.raw)))
|
|
|
|
|
|
|
|
(math_environment
|
|
|
|
(text) @markup.raw)
|
|
|
|
|
|
|
|
(math_environment
|
|
|
|
(end
|
|
|
|
command: _ @function.builtin
|
|
|
|
name: (curly_group_text (text) @markup.raw)))
|
|
|
|
|
|
|
|
;; Sectioning
|
|
|
|
(title_declaration
|
|
|
|
command: _ @namespace
|
|
|
|
options: (brack_group (_) @markup.heading)?
|
|
|
|
text: (curly_group (_) @markup.heading))
|
|
|
|
|
|
|
|
(author_declaration
|
|
|
|
command: _ @namespace
|
|
|
|
authors: (curly_group_author_list
|
|
|
|
((author)+ @markup.heading)))
|
|
|
|
|
|
|
|
(chapter
|
|
|
|
command: _ @namespace
|
|
|
|
toc: (brack_group (_) @markup.heading)?
|
|
|
|
text: (curly_group (_) @markup.heading))
|
|
|
|
|
|
|
|
(part
|
|
|
|
command: _ @namespace
|
|
|
|
toc: (brack_group (_) @markup.heading)?
|
|
|
|
text: (curly_group (_) @markup.heading))
|
|
|
|
|
|
|
|
(section
|
|
|
|
command: _ @namespace
|
|
|
|
toc: (brack_group (_) @markup.heading)?
|
|
|
|
text: (curly_group (_) @markup.heading))
|
|
|
|
|
|
|
|
(subsection
|
|
|
|
command: _ @namespace
|
|
|
|
toc: (brack_group (_) @markup.heading)?
|
|
|
|
text: (curly_group (_) @markup.heading))
|
|
|
|
|
|
|
|
(subsubsection
|
|
|
|
command: _ @namespace
|
|
|
|
toc: (brack_group (_) @markup.heading)?
|
|
|
|
text: (curly_group (_) @markup.heading))
|
|
|
|
|
|
|
|
(paragraph
|
|
|
|
command: _ @namespace
|
|
|
|
toc: (brack_group (_) @markup.heading)?
|
|
|
|
text: (curly_group (_) @markup.heading))
|
|
|
|
|
|
|
|
(subparagraph
|
|
|
|
command: _ @namespace
|
|
|
|
toc: (brack_group (_) @markup.heading)?
|
|
|
|
text: (curly_group (_) @markup.heading))
|
|
|
|
|
|
|
|
;; Beamer frames
|
|
|
|
(generic_environment
|
|
|
|
(begin
|
|
|
|
name: (curly_group_text
|
|
|
|
(text) @markup.heading)
|
|
|
|
(#any-of? @markup.heading "frame"))
|
|
|
|
.
|
|
|
|
(curly_group (_) @markup.heading))
|
|
|
|
|
|
|
|
((generic_command
|
|
|
|
command: (command_name) @_name
|
|
|
|
arg: (curly_group
|
|
|
|
(text) @markup.heading))
|
|
|
|
(#eq? @_name "\\frametitle"))
|
|
|
|
|
|
|
|
;; Formatting
|
|
|
|
((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))
|
|
|
|
(#match? @_name "^(\\\\textit|\\\\mathit)$"))
|
|
|
|
|
|
|
|
((generic_command
|
|
|
|
command: (command_name) @_name
|
|
|
|
arg: (curly_group (_) @markup.bold))
|
|
|
|
(#match? @_name "^(\\\\textbf|\\\\mathbf)$"))
|
|
|
|
|
|
|
|
((generic_command
|
|
|
|
command: (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)
|