diff options
author | Evgeni Chasnovski <evgeni.chasnovski@gmail.com> | 2024-01-14 02:35:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-13 16:35:37 -0800 |
commit | 0c850add3ecedec5b7dea62f0dd152f3421b66fc (patch) | |
tree | 6f4968bbe6307d86e3d9408d66a8cf16b740e008 | |
parent | bab5e7fe17db67aa24115eeb44fc68905b107d9e (diff) | |
download | rneovim-0c850add3ecedec5b7dea62f0dd152f3421b66fc.tar.gz rneovim-0c850add3ecedec5b7dea62f0dd152f3421b66fc.tar.bz2 rneovim-0c850add3ecedec5b7dea62f0dd152f3421b66fc.zip |
fix(colorscheme): default statusline groups usability #26921
Problem: Current values of `StatusLine` and `StatusLineNC` are currently
designed to be visually distinctive while being not intrusive.
However, the compromise was more shifted towards "not intrusive".
After the feedback, statusline highlight groups should be designed to:
- Make current window clearly noticeable. Meaning `StatusLine` and
`StatusLineNC` should obviously differ.
- Make non-current windows clearly separable. Meaning `StatusLineNC`
and `Normal`/`NormalNC` should obviously differ.
Solution:
- Update `StatusLineNC` to have more visible background.
- Update `StatusLine` to be inverted variant of `StatusLineNC`.
- Update `WinBar` and `WinBarNC` to not link to `StatusLine` and
`StatusLineNC` because it makes two goals harder to achieve.
- Update `TabLine` to link to `StatusLineNC` instead of `StatusLine`
to not be very visually intrusive.
-rw-r--r-- | runtime/doc/news.txt | 4 | ||||
-rw-r--r-- | src/nvim/highlight_group.c | 16 | ||||
-rw-r--r-- | test/functional/ui/embed_spec.lua | 2 |
3 files changed, 12 insertions, 10 deletions
diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index 98b782a105..cb70c81191 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -99,8 +99,8 @@ The following changes may require adaptations in user config or plugins. a meaningfully different way and might need an update: • |hl-FloatBorder| is linked to |hl-NormalFloat| instead of |hl-WinSeparator|. • |hl-NormalFloat| is not linked to |hl-Pmenu|. - • |hl-WinBar| is linked to |hl-StatusLine|. - • |hl-WinBarNC| is linked to |hl-StatusLineNC| instead of |hl-WinBar|. + • |hl-WinBar| has different background. + • |hl-WinBarNC| is similar to |hl-WinBar| but not bold. • |hl-WinSeparator| is linked to |hl-Normal| instead of |hl-VertSplit|. This also might result into some color schemes looking differently due to diff --git a/src/nvim/highlight_group.c b/src/nvim/highlight_group.c index 07ba1088f9..9c12a5bda1 100644 --- a/src/nvim/highlight_group.c +++ b/src/nvim/highlight_group.c @@ -178,15 +178,13 @@ static const char *highlight_init_both[] = { "default link PmenuKindSel PmenuSel", "default link PmenuSbar Pmenu", "default link Substitute Search", - "default link TabLine StatusLine", + "default link TabLine StatusLineNC", "default link TabLineFill TabLine", "default link TermCursorNC NONE", "default link VertSplit WinSeparator", "default link VisualNOS Visual", "default link Whitespace NonText", "default link WildMenu PmenuSel", - "default link WinBar StatusLine", - "default link WinBarNC StatusLineNC", "default link WinSeparator Normal", // Syntax @@ -351,10 +349,12 @@ static const char *highlight_init_light[] = { "SpellCap guisp=NvimDarkYellow gui=undercurl cterm=undercurl", "SpellLocal guisp=NvimDarkGreen gui=undercurl cterm=undercurl", "SpellRare guisp=NvimDarkCyan gui=undercurl cterm=undercurl", - "StatusLine guifg=NvimDarkGrey3 guibg=NvimLightGrey1 cterm=reverse", - "StatusLineNC guifg=NvimDarkGrey4 guibg=NvimLightGrey1 cterm=bold", + "StatusLine guifg=NvimLightGrey3 guibg=NvimDarkGrey3 cterm=reverse", + "StatusLineNC guifg=NvimDarkGrey3 guibg=NvimLightGrey3 cterm=bold", "Visual guibg=NvimLightGrey4 ctermfg=15 ctermbg=0", "WarningMsg guifg=NvimDarkYellow ctermfg=3", + "WinBar guifg=NvimDarkGrey4 guibg=NvimLightGrey1 gui=bold cterm=bold", + "WinBarNC guifg=NvimDarkGrey4 guibg=NvimLightGrey1 cterm=bold", // Syntax "Comment guifg=NvimDarkGrey4", @@ -423,10 +423,12 @@ static const char *highlight_init_dark[] = { "SpellCap guisp=NvimLightYellow gui=undercurl cterm=undercurl", "SpellLocal guisp=NvimLightGreen gui=undercurl cterm=undercurl", "SpellRare guisp=NvimLightCyan gui=undercurl cterm=undercurl", - "StatusLine guifg=NvimLightGrey3 guibg=NvimDarkGrey1 cterm=reverse", - "StatusLineNC guifg=NvimLightGrey4 guibg=NvimDarkGrey1 cterm=bold", + "StatusLine guifg=NvimDarkGrey3 guibg=NvimLightGrey3 cterm=reverse", + "StatusLineNC guifg=NvimLightGrey3 guibg=NvimDarkGrey3 cterm=bold", "Visual guibg=NvimDarkGrey4 ctermfg=0 ctermbg=15", "WarningMsg guifg=NvimLightYellow ctermfg=11", + "WinBar guifg=NvimLightGrey4 guibg=NvimDarkGrey1 gui=bold cterm=bold", + "WinBarNC guifg=NvimLightGrey4 guibg=NvimDarkGrey1 cterm=bold", // Syntax "Comment guifg=NvimLightGrey4", diff --git a/test/functional/ui/embed_spec.lua b/test/functional/ui/embed_spec.lua index 9e08f7748e..e655ee1b54 100644 --- a/test/functional/ui/embed_spec.lua +++ b/test/functional/ui/embed_spec.lua @@ -26,7 +26,7 @@ local function test_embed(ext_linegrid) [3] = { bold = true, foreground = Screen.colors.Blue1 }, [4] = { bold = true, foreground = Screen.colors.Green }, [5] = { bold = true, reverse = true }, - [6] = { foreground = Screen.colors.NvimDarkGrey3, background = Screen.colors.NvimLightGrey1 }, + [6] = { foreground = Screen.colors.NvimLightGrey3, background = Screen.colors.NvimDarkGrey3 }, [7] = { foreground = Screen.colors.NvimDarkRed }, [8] = { foreground = Screen.colors.NvimDarkCyan }, }) |