mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-15 09:50:04 -04:00
feat!: align standard captures with upstream
Problem: Sharing highlight queries with upstream tree-sitter and
Helix is difficult.
Solution: Where reasonable, use capture names in tree-sitter's standard
list or Helix's Atom-style hierarchy.
Specifically:
* tree-sitter "standard capture names"
(3f44b89685/highlight/src/lib.rs (L20-L72)):
- `@parameter` -> `@variable.parameter`
- `@field` -> `@variable.member`
- `@namespace` -> `@module`
- `@float` -> `@number.float`
- `@symbol` -> `@string.special.symbol`
- `@string.regex` -> `@string.regexp`
- `@text.*` -> `@markup.*` (`strong`, `italic`, `link`, `strikethrough`; with exceptions; see below)
- `@text.title` -> `@markup.heading`
- `@text.literal` -> `@markup.raw`
- `@text.reference` -> `@markup.link`
- `@text.uri` -> `@markup.link.url` (in markup links)
- `@string.special` -> `@markup.link.label` (non-url links)
- `@punctuation.special` -> `@markup.list` (markdown lists only; move subitems from `@text.todo`)
* Helix captures
(https://docs.helix-editor.com/master/themes.html#syntax-highlighting):
- `@method` -> `@function.method`
- `@method.call` -> `@function.method.call`
- `@text.{todo,warning,note,danger}` -> `@comment.{error,warning,hint,info,todo}`
- `@text.diff.{add,delete,}` -> `@diff.{plus,minus,delta}`
- `@text.uri` -> `@string.special.url` (outside markup)
- `@preproc` -> `@keyword.directive`
- `@define` -> `@keyword.directive`(`.define`?)
- `@storageclass` -> `@keyword.storage`
- `@conditional` -> `@keyword.conditional`
- `@debug` -> `@keyword.debug`
- `@exception` -> `@keyword.exception`
- `@include` -> `@keyword.import`
- `@repeat` -> `@keyword.repeat`
* cleanup
- remove some redundant `@conceal` (but still allow it for conceal-only patterns)
- remove obsolete `@error` (syntax linting is out of scope for this repo)
- sort, cleanup capture list in `CONTRIBUTING.md`
This commit is contained in:
parent
10dd49958c
commit
1ae9b0e455
263 changed files with 2356 additions and 2337 deletions
|
|
@ -6,7 +6,7 @@
|
|||
command: _ @function)
|
||||
|
||||
(key_value_pair
|
||||
key: (_) @parameter
|
||||
key: (_) @variable.parameter
|
||||
value: (_))
|
||||
|
||||
[
|
||||
|
|
@ -15,13 +15,13 @@
|
|||
(comment_environment)
|
||||
] @comment @spell
|
||||
|
||||
((line_comment) @preproc
|
||||
(#lua-match? @preproc "^%% !TeX"))
|
||||
((line_comment) @keyword.directive
|
||||
(#lua-match? @keyword.directive "^%% !TeX"))
|
||||
|
||||
[
|
||||
(brack_group)
|
||||
(brack_group_argc)
|
||||
] @parameter
|
||||
] @variable.parameter
|
||||
|
||||
[(operator) "="] @operator
|
||||
|
||||
|
|
@ -34,12 +34,12 @@
|
|||
|
||||
;; General environments
|
||||
(begin
|
||||
command: _ @text.environment
|
||||
name: (curly_group_text (text) @text.environment.name))
|
||||
command: _ @markup.environment
|
||||
name: (curly_group_text (text) @markup.environment.name))
|
||||
|
||||
(end
|
||||
command: _ @text.environment
|
||||
name: (curly_group_text (text) @text.environment.name))
|
||||
command: _ @markup.environment
|
||||
name: (curly_group_text (text) @markup.environment.name))
|
||||
|
||||
;; Definitions and references
|
||||
(new_command_definition
|
||||
|
|
@ -54,11 +54,11 @@
|
|||
|
||||
(environment_definition
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
name: (curly_group_text (_) @markup.link))
|
||||
|
||||
(theorem_definition
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.environment.name))
|
||||
name: (curly_group_text (_) @markup.environment.name))
|
||||
|
||||
(paired_delimiter_definition
|
||||
command: _ @function.macro
|
||||
|
|
@ -66,178 +66,178 @@
|
|||
|
||||
(label_definition
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
name: (curly_group_text (_) @markup.link))
|
||||
(label_reference_range
|
||||
command: _ @function.macro
|
||||
from: (curly_group_text (_) @text.reference)
|
||||
to: (curly_group_text (_) @text.reference))
|
||||
from: (curly_group_text (_) @markup.link)
|
||||
to: (curly_group_text (_) @markup.link))
|
||||
(label_reference
|
||||
command: _ @function.macro
|
||||
names: (curly_group_text_list (_) @text.reference))
|
||||
names: (curly_group_text_list (_) @markup.link))
|
||||
(label_number
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference)
|
||||
number: (_) @text.reference)
|
||||
name: (curly_group_text (_) @markup.link)
|
||||
number: (_) @markup.link)
|
||||
|
||||
(citation
|
||||
command: _ @function.macro
|
||||
keys: (curly_group_text_list) @text.reference)
|
||||
keys: (curly_group_text_list) @markup.link)
|
||||
|
||||
(glossary_entry_definition
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
name: (curly_group_text (_) @markup.link))
|
||||
(glossary_entry_reference
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
name: (curly_group_text (_) @markup.link))
|
||||
|
||||
(acronym_definition
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
name: (curly_group_text (_) @markup.link))
|
||||
(acronym_reference
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
name: (curly_group_text (_) @markup.link))
|
||||
|
||||
(color_definition
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
name: (curly_group_text (_) @markup.link))
|
||||
(color_reference
|
||||
command: _ @function.macro
|
||||
name: (curly_group_text (_) @text.reference))
|
||||
name: (curly_group_text (_) @markup.link))
|
||||
|
||||
;; Math
|
||||
[
|
||||
(displayed_equation)
|
||||
(inline_formula)
|
||||
] @text.math
|
||||
] @markup.math
|
||||
|
||||
(math_environment
|
||||
(begin
|
||||
command: _ @text.math
|
||||
name: (curly_group_text (text) @text.math)))
|
||||
command: _ @markup.math
|
||||
name: (curly_group_text (text) @markup.math)))
|
||||
|
||||
(math_environment
|
||||
(text) @text.math)
|
||||
(text) @markup.math)
|
||||
|
||||
(math_environment
|
||||
(end
|
||||
command: _ @text.math
|
||||
name: (curly_group_text (text) @text.math)))
|
||||
command: _ @markup.math
|
||||
name: (curly_group_text (text) @markup.math)))
|
||||
|
||||
;; Sectioning
|
||||
(title_declaration
|
||||
command: _ @namespace
|
||||
options: (brack_group (_) @text.title.1)?
|
||||
text: (curly_group (_) @text.title.1))
|
||||
command: _ @module
|
||||
options: (brack_group (_) @markup.heading.1)?
|
||||
text: (curly_group (_) @markup.heading.1))
|
||||
|
||||
(author_declaration
|
||||
command: _ @namespace
|
||||
command: _ @module
|
||||
authors: (curly_group_author_list
|
||||
((author)+ @text.title.1)))
|
||||
((author)+ @markup.heading.1)))
|
||||
|
||||
(chapter
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title.2)?
|
||||
text: (curly_group (_) @text.title.2))
|
||||
command: _ @module
|
||||
toc: (brack_group (_) @markup.heading.2)?
|
||||
text: (curly_group (_) @markup.heading.2))
|
||||
|
||||
(part
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title.2)?
|
||||
text: (curly_group (_) @text.title.2))
|
||||
command: _ @module
|
||||
toc: (brack_group (_) @markup.heading.2)?
|
||||
text: (curly_group (_) @markup.heading.2))
|
||||
|
||||
(section
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title.3)?
|
||||
text: (curly_group (_) @text.title.3))
|
||||
command: _ @module
|
||||
toc: (brack_group (_) @markup.heading.3)?
|
||||
text: (curly_group (_) @markup.heading.3))
|
||||
|
||||
(subsection
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title.4)?
|
||||
text: (curly_group (_) @text.title.4))
|
||||
command: _ @module
|
||||
toc: (brack_group (_) @markup.heading.4)?
|
||||
text: (curly_group (_) @markup.heading.4))
|
||||
|
||||
(subsubsection
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title.5)?
|
||||
text: (curly_group (_) @text.title.5))
|
||||
command: _ @module
|
||||
toc: (brack_group (_) @markup.heading.5)?
|
||||
text: (curly_group (_) @markup.heading.5))
|
||||
|
||||
(paragraph
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title.6)?
|
||||
text: (curly_group (_) @text.title.6))
|
||||
command: _ @module
|
||||
toc: (brack_group (_) @markup.heading.6)?
|
||||
text: (curly_group (_) @markup.heading.6))
|
||||
|
||||
(subparagraph
|
||||
command: _ @namespace
|
||||
toc: (brack_group (_) @text.title.6)?
|
||||
text: (curly_group (_) @text.title.6))
|
||||
command: _ @module
|
||||
toc: (brack_group (_) @markup.heading.6)?
|
||||
text: (curly_group (_) @markup.heading.6))
|
||||
|
||||
;; Beamer frames
|
||||
(generic_environment
|
||||
(begin
|
||||
name: (curly_group_text
|
||||
(text) @text.environment.name)
|
||||
(#any-of? @text.environment.name "frame"))
|
||||
(text) @markup.environment.name)
|
||||
(#any-of? @markup.environment.name "frame"))
|
||||
.
|
||||
(curly_group (_) @text.title))
|
||||
(curly_group (_) @markup.heading))
|
||||
|
||||
((generic_command
|
||||
command: (command_name) @_name
|
||||
arg: (curly_group
|
||||
(text) @text.title))
|
||||
(text) @markup.heading))
|
||||
(#eq? @_name "\\frametitle"))
|
||||
|
||||
;; Formatting
|
||||
(text_mode
|
||||
content: (curly_group (_) @text))
|
||||
content: (curly_group (_) @none @spell))
|
||||
|
||||
((generic_command
|
||||
command: (command_name) @_name
|
||||
arg: (curly_group (_) @text.emphasis))
|
||||
arg: (curly_group (_) @markup.italic))
|
||||
(#eq? @_name "\\emph"))
|
||||
|
||||
((generic_command
|
||||
command: (command_name) @_name
|
||||
arg: (curly_group (_) @text.emphasis))
|
||||
arg: (curly_group (_) @markup.italic))
|
||||
(#any-of? @_name "\\textit" "\\mathit"))
|
||||
|
||||
((generic_command
|
||||
command: (command_name) @_name
|
||||
arg: (curly_group (_) @text.strong))
|
||||
arg: (curly_group (_) @markup.strong))
|
||||
(#any-of? @_name "\\textbf" "\\mathbf"))
|
||||
|
||||
((generic_command
|
||||
command: (command_name) @_name
|
||||
.
|
||||
arg: (curly_group (_) @text.uri))
|
||||
arg: (curly_group (_) @markup.link.url))
|
||||
(#any-of? @_name "\\url" "\\href"))
|
||||
|
||||
;; File inclusion commands
|
||||
(class_include
|
||||
command: _ @include
|
||||
command: _ @keyword.import
|
||||
path: (curly_group_path) @string)
|
||||
|
||||
(package_include
|
||||
command: _ @include
|
||||
command: _ @keyword.import
|
||||
paths: (curly_group_path_list) @string)
|
||||
|
||||
(latex_include
|
||||
command: _ @include
|
||||
command: _ @keyword.import
|
||||
path: (curly_group_path) @string)
|
||||
(import_include
|
||||
command: _ @include
|
||||
command: _ @keyword.import
|
||||
directory: (curly_group_path) @string
|
||||
file: (curly_group_path) @string)
|
||||
|
||||
(bibtex_include
|
||||
command: _ @include
|
||||
command: _ @keyword.import
|
||||
path: (curly_group_path) @string)
|
||||
(biblatex_include
|
||||
"\\addbibresource" @include
|
||||
glob: (curly_group_glob_pattern) @string.regex)
|
||||
"\\addbibresource" @keyword.import
|
||||
glob: (curly_group_glob_pattern) @string.regexp)
|
||||
|
||||
(graphics_include
|
||||
command: _ @include
|
||||
command: _ @keyword.import
|
||||
path: (curly_group_path) @string)
|
||||
(tikz_library_import
|
||||
command: _ @include
|
||||
command: _ @keyword.import
|
||||
paths: (curly_group_path_list) @string)
|
||||
|
||||
(text) @spell
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue