Skip to content

Commit

Permalink
fix(colorscheme): default statusline groups usability neovim#26921
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
echasnovski authored and cleong14 committed Jan 16, 2024
1 parent f0b4ea4 commit 881521c
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 10 deletions.
4 changes: 2 additions & 2 deletions runtime/doc/news.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
16 changes: 9 additions & 7 deletions src/nvim/highlight_group.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion test/functional/ui/embed_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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 },
})
Expand Down

0 comments on commit 881521c

Please sign in to comment.