feat(lsp)!: add rule-based sem token highlighting (#22022)

feat(lsp)!: change semantic token highlighting

Change the default highlights used, and add more highlights per token.

Add an LspTokenUpdate event and a highlight_token function.

:Inspect now shows any highlights applied by token highlighting rules,
default or user-defined.

BREAKING CHANGE: change the default highlight groups used by semantic
token highlighting.
This commit is contained in:
swarn
2023-03-06 12:03:13 -06:00
committed by GitHub
parent 98f2df931a
commit 1cc23e1109
7 changed files with 442 additions and 203 deletions

View File

@@ -270,16 +270,22 @@ static const char *highlight_init_both[] = {
"default link @tag Tag",
// LSP semantic tokens
"default link @class Structure",
"default link @struct Structure",
"default link @enum Type",
"default link @enumMember Constant",
"default link @event Identifier",
"default link @interface Identifier",
"default link @modifier Identifier",
"default link @regexp SpecialChar",
"default link @typeParameter Type",
"default link @decorator Identifier",
"default link @lsp.type.class Structure",
"default link @lsp.type.decorator Function",
"default link @lsp.type.enum Structure",
"default link @lsp.type.enumMember Constant",
"default link @lsp.type.function Function",
"default link @lsp.type.interface Structure",
"default link @lsp.type.macro Macro",
"default link @lsp.type.method Function",
"default link @lsp.type.namespace Structure",
"default link @lsp.type.parameter Identifier",
"default link @lsp.type.property Identifier",
"default link @lsp.type.struct Structure",
"default link @lsp.type.type Type",
"default link @lsp.type.typeParameter TypeDef",
"default link @lsp.type.variable Identifier",
NULL
};