mirror of https://github.com/Wilfred/difftastic/
Add syntax highlighting definitions for LaTeX.
File copied from a separate repository.pull/511/head
parent
7077c39b0b
commit
efdef4809d
@ -0,0 +1,252 @@
|
||||
;; Based on the nvim-treesitter highlighting, which is under the Apache license.
|
||||
;; https://github.com/nvim-treesitter/nvim-treesitter/blob/f0b50973f334a7a5bb5831cb52b9fd4c770e6cba/queries/latex/highlights.scm
|
||||
|
||||
;; General syntax
|
||||
(ERROR) @error
|
||||
|
||||
(command_name) @function
|
||||
(caption
|
||||
command: _ @function)
|
||||
|
||||
(key_value_pair
|
||||
key: (_) @parameter
|
||||
value: (_))
|
||||
|
||||
[
|
||||
(line_comment)
|
||||
(block_comment)
|
||||
(comment_environment)
|
||||
] @comment
|
||||
|
||||
((line_comment) @preproc
|
||||
(#lua-match? @preproc "^%% !TeX"))
|
||||
|
||||
[
|
||||
(brack_group)
|
||||
(brack_group_argc)
|
||||
] @parameter
|
||||
|
||||
[(operator) "="] @operator
|
||||
|
||||
"\\item" @punctuation.special
|
||||
|
||||
((word) @punctuation.delimiter
|
||||
(#eq? @punctuation.delimiter "&"))
|
||||
|
||||
["[" "]" "{" "}"] @punctuation.bracket ; "(" ")" has no syntactical meaning in LaTeX
|
||||
|
||||
;; General environments
|
||||
(begin
|
||||
command: _ @text.environment
|
||||
name: (curly_group_text (text) @text.environment.name))
|
||||
|
||||
(end
|
||||
command: _ @text.environment
|
||||
name: (curly_group_text (text) @text.environment.name))
|
||||
|
||||
;; 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 (_) @text.reference))
|
||||
|
||||
(theorem_definition
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.environment.name))
|
||||
|
||||
(paired_delimiter_definition
|
||||
command: _ @function.macro
|
||||
declaration: (curly_group_command_name (_) @function))
|
||||
|
||||
(label_definition
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
(label_reference_range
|
||||
command: _ @function.macro
|
||||
from: (curly_group_text (_) @text.reference)
|
||||
to: (curly_group_text (_) @text.reference))
|
||||
(label_reference
|
||||
command: _ @function.macro
|
||||
names: (curly_group_text_list (_) @text.reference))
|
||||
(label_number
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference)
|
||||
number: (_) @text.reference)
|
||||
|
||||
(citation
|
||||
command: _ @function.macro
|
||||
keys: (curly_group_text_list) @text.reference)
|
||||
|
||||
(glossary_entry_definition
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
(glossary_entry_reference
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
|
||||
(acronym_definition
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
(acronym_reference
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
|
||||
(color_definition
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
(color_reference
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
|
||||
;; Math
|
||||
[
|
||||
(displayed_equation)
|
||||
(inline_formula)
|
||||
] @text.math
|
||||
|
||||
(math_environment
|
||||
(begin
|
||||
command: _ @text.math
|
||||
name: (curly_group_text (text) @text.math)))
|
||||
|
||||
(math_environment
|
||||
(text) @text.math)
|
||||
|
||||
(math_environment
|
||||
(end
|
||||
command: _ @text.math
|
||||
name: (curly_group_text (text) @text.math)))
|
||||
|
||||
;; Sectioning
|
||||
(title_declaration
|
||||
command: _ @namespace
|
||||
options: (brack_group (_) @text.title)?
|
||||
text: (curly_group (_) @text.title))
|
||||
|
||||
(author_declaration
|
||||
command: _ @namespace
|
||||
authors: (curly_group_author_list
|
||||
((author)+ @text.title)))
|
||||
|
||||
(chapter
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title)?
|
||||
text: (curly_group (_) @text.title))
|
||||
|
||||
(part
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title)?
|
||||
text: (curly_group (_) @text.title))
|
||||
|
||||
(section
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title)?
|
||||
text: (curly_group (_) @text.title))
|
||||
|
||||
(subsection
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title)?
|
||||
text: (curly_group (_) @text.title))
|
||||
|
||||
(subsubsection
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title)?
|
||||
text: (curly_group (_) @text.title))
|
||||
|
||||
(paragraph
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title)?
|
||||
text: (curly_group (_) @text.title))
|
||||
|
||||
(subparagraph
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title)?
|
||||
text: (curly_group (_) @text.title))
|
||||
|
||||
;; Beamer frames
|
||||
(generic_environment
|
||||
(begin
|
||||
name: (curly_group_text
|
||||
(text) @text.environment.name)
|
||||
(#any-of? @text.environment.name "frame"))
|
||||
.
|
||||
(curly_group (_) @text.title))
|
||||
|
||||
((generic_command
|
||||
command: (command_name) @_name
|
||||
arg: (curly_group
|
||||
(text) @text.title))
|
||||
(#eq? @_name "\\frametitle"))
|
||||
|
||||
;; Formatting
|
||||
((generic_command
|
||||
command: (command_name) @_name
|
||||
arg: (curly_group (_) @text.emphasis))
|
||||
(#eq? @_name "\\emph"))
|
||||
|
||||
((generic_command
|
||||
command: (command_name) @_name
|
||||
arg: (curly_group (_) @text.emphasis))
|
||||
(#match? @_name "^(\\\\textit|\\\\mathit)$"))
|
||||
|
||||
((generic_command
|
||||
command: (command_name) @_name
|
||||
arg: (curly_group (_) @text.strong))
|
||||
(#match? @_name "^(\\\\textbf|\\\\mathbf)$"))
|
||||
|
||||
((generic_command
|
||||
command: (command_name) @_name
|
||||
.
|
||||
arg: (curly_group (_) @text.uri))
|
||||
(#match? @_name "^(\\\\url|\\\\href)$"))
|
||||
|
||||
;; 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
|
||||
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
|
||||
Loading…
Reference in New Issue