diff options
author | Gregory Anders <8965202+gpanders@users.noreply.github.com> | 2023-08-15 09:25:51 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-15 09:25:51 -0500 |
commit | e72c0cd92090c1fc1e5665a060b3e1d0094d7f30 (patch) | |
tree | 78c1c4f21877e61091daa6df42381712b948ecd5 | |
parent | fc14928719df12826397b46b1765b82f1fc7d1d8 (diff) | |
download | rneovim-e72c0cd92090c1fc1e5665a060b3e1d0094d7f30.tar.gz rneovim-e72c0cd92090c1fc1e5665a060b3e1d0094d7f30.tar.bz2 rneovim-e72c0cd92090c1fc1e5665a060b3e1d0094d7f30.zip |
feat(highlight): Allow hyphens (-) in highlight group names (#24714)
Fixes: https://github.com/neovim/neovim/issues/23184
-rw-r--r-- | runtime/doc/syntax.txt | 4 | ||||
-rw-r--r-- | runtime/doc/vim_diff.txt | 4 | ||||
-rw-r--r-- | src/nvim/highlight_group.c | 2 | ||||
-rw-r--r-- | test/functional/plugin/lsp/semantic_tokens_spec.lua | 1 |
4 files changed, 6 insertions, 5 deletions
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index 703ccd2e01..a89884efba 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -188,8 +188,8 @@ thing. These are then linked to a highlight group that specifies the color. A syntax group name doesn't specify any color or attributes itself. The name for a highlight or syntax group must consist of ASCII letters, -digits, underscores, periods and `@` characters. As a regexp it is -`[a-zA-Z0-9_.@]*`. The maximum length of a group name is about 200 bytes. +digits, underscores, periods, hyphens, and `@` characters. As a regexp it is +`[a-zA-Z0-9_.@-]*`. The maximum length of a group name is about 200 bytes. *E1249* To be able to allow each user to pick their favorite set of colors, there must diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index d288f31828..64ce466c73 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -494,9 +494,9 @@ Highlight groups: using |n| or |N| |hl-CursorLine| is low-priority unless foreground color is set |hl-VertSplit| superseded by |hl-WinSeparator| - Highlight groups names are allowed to contain the characters `.` and `@`. + Highlight groups names are allowed to contain the characters `.`, `@`, and `-`. It is an error to define a highlight group with a name that doesn't match - the regexp `[a-zA-Z0-9_.@]*` (see |group-name|). + the regexp `[a-zA-Z0-9_.@-]*` (see |group-name|). Macro/|recording| behavior Replay of a macro recorded during :lmap produces the same actions as when it diff --git a/src/nvim/highlight_group.c b/src/nvim/highlight_group.c index de53545195..60cafb0abb 100644 --- a/src/nvim/highlight_group.c +++ b/src/nvim/highlight_group.c @@ -1942,7 +1942,7 @@ static int syn_add_group(const char *name, size_t len) if (!vim_isprintc(c)) { emsg(_("E669: Unprintable character in group name")); return 0; - } else if (!ASCII_ISALNUM(c) && c != '_' && c != '.' && c != '@') { + } else if (!ASCII_ISALNUM(c) && c != '_' && c != '.' && c != '@' && c != '-') { // '.' and '@' are allowed characters for use with treesitter capture names. msg_source(HL_ATTR(HLF_W)); emsg(_(e_highlight_group_name_invalid_char)); diff --git a/test/functional/plugin/lsp/semantic_tokens_spec.lua b/test/functional/plugin/lsp/semantic_tokens_spec.lua index d1ffb72ef5..b7ac53f270 100644 --- a/test/functional/plugin/lsp/semantic_tokens_spec.lua +++ b/test/functional/plugin/lsp/semantic_tokens_spec.lua @@ -106,6 +106,7 @@ describe('semantic token highlighting', function() exec_lua([[ bufnr = vim.api.nvim_get_current_buf() vim.api.nvim_win_set_buf(0, bufnr) + vim.bo[bufnr].filetype = 'some-filetype' client_id = vim.lsp.start({ name = 'dummy', cmd = server.cmd }) ]]) |