aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2022-10-18 18:46:09 +0200
committerGitHub <noreply@github.com>2022-10-18 18:46:09 +0200
commitaa2f08a050682ed6b2ffae521feec88451f2d3c0 (patch)
treeb3c6363efd6e68ed95c561ced02f367518256bc8
parentef4c339fb9de87f7534303e006c281e40327f803 (diff)
downloadrneovim-aa2f08a050682ed6b2ffae521feec88451f2d3c0.tar.gz
rneovim-aa2f08a050682ed6b2ffae521feec88451f2d3c0.tar.bz2
rneovim-aa2f08a050682ed6b2ffae521feec88451f2d3c0.zip
fix(highlight): link more treesitter groups by default (#20711)
Problem: Captures used by bundled parsers are not highlighted by default Solution: Add links to default groups A link is added for a capture if * there is a default group of the same name (e.g., `@tag` -> `Tag`) * it's used in a bundled query and doesn't have a reasonable fallback (e.g., `@text.literal`) Also add all linked groups to the treesitter docs.
-rw-r--r--runtime/doc/treesitter.txt53
-rw-r--r--src/nvim/highlight_group.c15
2 files changed, 64 insertions, 4 deletions
diff --git a/runtime/doc/treesitter.txt b/runtime/doc/treesitter.txt
index c836ccec8c..31ee7c31c8 100644
--- a/runtime/doc/treesitter.txt
+++ b/runtime/doc/treesitter.txt
@@ -372,6 +372,59 @@ instance, to highlight comments differently per language: >
hi @comment.lua @guifg=DarkBlue
hi link @comment.doc.java String
<
+The following captures are linked by default to standard |group-name|s:
+>
+ @text.literal Comment
+ @text.reference Identifier
+ @text.title Title
+ @text.uri Underlined
+ @text.underline Underlined
+ @text.todo Todo
+
+ @comment Comment
+ @punctuation Delimiter
+
+ @constant Constant
+ @constant.builtin Special
+ @constant.macro Define
+ @define Define
+ @macro Macro
+ @string String
+ @string.escape SpecialChar
+ @string.special SpecialChar
+ @character Character
+ @character.special SpecialChar
+ @number Number
+ @boolean Boolean
+ @float Float
+
+ @function Function
+ @function.builtin Special
+ @function.macro Macro
+ @parameter Identifier
+ @method Function
+ @field Identifier
+ @property Identifier
+ @constructor Special
+
+ @conditional Conditional
+ @repeat Repeat
+ @label Label
+ @operator Operator
+ @keyword Keyword
+ @exception Exception
+
+ @variable Identifier
+ @type Type
+ @type.definition Typedef
+ @storageclass StorageClass
+ @structure Structure
+ @namespace Identifier
+ @include Include
+ @preproc PreProc
+ @debug Debug
+ @tag Tag
+<
*treesitter-highlight-spell*
The special `@spell` capture can be used to indicate that a node should be
spell checked by Nvim's builtin |spell| checker. For example, the following
diff --git a/src/nvim/highlight_group.c b/src/nvim/highlight_group.c
index 3508560e20..4c253480be 100644
--- a/src/nvim/highlight_group.c
+++ b/src/nvim/highlight_group.c
@@ -98,8 +98,6 @@ enum {
// The default highlight groups. These are compiled-in for fast startup and
// they still work when the runtime files can't be found.
-//
-// When making changes here, also change runtime/colors/default.vim!
static const char *highlight_init_both[] = {
"Conceal ctermbg=DarkGrey ctermfg=LightGrey guibg=DarkGrey guifg=LightGrey",
@@ -186,9 +184,13 @@ static const char *highlight_init_both[] = {
"default link DiagnosticSignInfo DiagnosticInfo",
"default link DiagnosticSignHint DiagnosticHint",
+ // Text
+ "default link @text.literal Comment",
+ "default link @text.reference Identifier",
+ "default link @text.title Title",
+ "default link @text.uri Underlined",
"default link @text.underline Underlined",
- "default link @todo Todo",
- "default link @debug Debug",
+ "default link @text.todo Todo",
// Miscs
"default link @comment Comment",
@@ -202,6 +204,7 @@ static const char *highlight_init_both[] = {
"default link @macro Macro",
"default link @string String",
"default link @string.escape SpecialChar",
+ "default link @string.special SpecialChar",
"default link @character Character",
"default link @character.special SpecialChar",
"default link @number Number",
@@ -226,12 +229,16 @@ static const char *highlight_init_both[] = {
"default link @keyword Keyword",
"default link @exception Exception",
+ "default link @variable Identifier",
"default link @type Type",
"default link @type.definition Typedef",
"default link @storageclass StorageClass",
"default link @structure Structure",
+ "default link @namespace Identifier",
"default link @include Include",
"default link @preproc PreProc",
+ "default link @debug Debug",
+ "default link @tag Tag",
NULL
};