aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeni Chasnovski <evgeni.chasnovski@gmail.com>2024-01-14 02:35:37 +0200
committerGitHub <noreply@github.com>2024-01-13 16:35:37 -0800
commit0c850add3ecedec5b7dea62f0dd152f3421b66fc (patch)
tree6f4968bbe6307d86e3d9408d66a8cf16b740e008
parentbab5e7fe17db67aa24115eeb44fc68905b107d9e (diff)
downloadrneovim-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.txt4
-rw-r--r--src/nvim/highlight_group.c16
-rw-r--r--test/functional/ui/embed_spec.lua2
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 },
})