fix(highlight): add StatusLineTerm/StatusLineTermNC to :color vim (#29313)

Problem: both `StatusLineTerm`/`StatusLineTermNC` are now explicitly
  used, but `:color vim` does not set them to the values used in Vim.
  This might be fine if `:color vim` is treated as "the state of default
  color scheme prior the big update", but it seems to be better treated
  as "Vim's default color scheme" (how it is documented in its header).

Solution: add `StatusLineTerm`/`StatusLineTermNC` definitions to
  'runtime/colors/vim.lua'.
  Use explicit foreground colors ('Whte'/'Black') instead of `guifg=bg`
  used in source, as the latter caused some problems in the past (if
  `Normal` is not defined, `nvim_set_hl()` can't recognize `'bg'` as the
  foreground value).
  Also realign the rest of the background conditional highlight groups.
This commit is contained in:
Evgeni Chasnovski
2024-06-14 12:28:49 +03:00
committed by GitHub
parent 0a9c81d709
commit 458473acb8
4 changed files with 129 additions and 82 deletions

View File

@@ -209,81 +209,85 @@ hi('@lsp.type.variable', { link = 'Identifier' })
if vim.o.background == 'light' then
-- Default colors only used with a light background.
hi('ColorColumn', { bg = 'LightRed', ctermbg = 'LightRed' })
hi('CursorColumn', { bg = 'Grey90', ctermbg = 'LightGrey' })
hi('CursorLine', { bg = 'Grey90', cterm = { underline = true } })
hi('CursorLineNr', { fg = 'Brown', bold = true, ctermfg = 'Brown', cterm = { underline = true } })
hi('DiffAdd', { bg = 'LightBlue', ctermbg = 'LightBlue' })
hi('DiffChange', { bg = 'LightMagenta', ctermbg = 'LightMagenta' })
hi('DiffDelete', { fg = 'Blue', bg = 'LightCyan', bold = true, ctermfg = 'Blue', ctermbg = 'LightCyan' })
hi('Directory', { fg = 'Blue', ctermfg = 'DarkBlue' })
hi('FoldColumn', { fg = 'DarkBlue', bg = 'Grey', ctermfg = 'DarkBlue', ctermbg = 'Grey' })
hi('Folded', { fg = 'DarkBlue', bg = 'LightGrey', ctermfg = 'DarkBlue', ctermbg = 'Grey' })
hi('LineNr', { fg = 'Brown', ctermfg = 'Brown' })
hi('MatchParen', { bg = 'Cyan', ctermbg = 'Cyan' })
hi('MoreMsg', { fg = 'SeaGreen', bold = true, ctermfg = 'DarkGreen' })
hi('Pmenu', { bg = 'LightMagenta', ctermfg = 'Black', ctermbg = 'LightMagenta' })
hi('PmenuSel', { bg = 'Grey', ctermfg = 'Black', ctermbg = 'LightGrey' })
hi('PmenuThumb', { bg = 'Black', ctermbg = 'Black' })
hi('Question', { fg = 'SeaGreen', bold = true, ctermfg = 'DarkGreen' })
hi('Search', { bg = 'Yellow', ctermbg = 'Yellow' })
hi('SignColumn', { fg = 'DarkBlue', bg = 'Grey', ctermfg = 'DarkBlue', ctermbg = 'Grey' })
hi('SpecialKey', { fg = 'Blue', ctermfg = 'DarkBlue' })
hi('SpellBad', { sp = 'Red', undercurl = true, ctermbg = 'LightRed' })
hi('SpellCap', { sp = 'Blue', undercurl = true, ctermbg = 'LightBlue' })
hi('SpellLocal', { sp = 'DarkCyan', undercurl = true, ctermbg = 'Cyan' })
hi('SpellRare', { sp = 'Magenta', undercurl = true, ctermbg = 'LightMagenta' })
hi('TabLine', { bg = 'LightGrey', underline = true, ctermfg = 'Black', ctermbg = 'LightGrey', cterm = { underline = true } })
hi('Title', { fg = 'Magenta', bold = true, ctermfg = 'DarkMagenta' })
hi('Visual', { fg = 'Black', bg = 'LightGrey', ctermfg = 'Black', ctermbg = 'Grey' })
hi('WarningMsg', { fg = 'Red', ctermfg = 'DarkRed' })
hi('Comment', { fg = 'Blue', ctermfg = 'DarkBlue' })
hi('Constant', { fg = 'Magenta', ctermfg = 'DarkRed' })
hi('Special', { fg = '#6a5acd', ctermfg = 'DarkMagenta' })
hi('Identifier', { fg = 'DarkCyan', ctermfg = 'DarkCyan' })
hi('Statement', { fg = 'Brown', bold = true, ctermfg = 'Brown' })
hi('PreProc', { fg = '#6a0dad', ctermfg = 'DarkMagenta' })
hi('Type', { fg = 'SeaGreen', bold = true, ctermfg = 'DarkGreen' })
hi('Underlined', { fg = 'SlateBlue', underline = true, ctermfg = 'DarkMagenta', cterm = { underline = true } })
hi('Ignore', { ctermfg = 'White' })
hi('ColorColumn', { bg = 'LightRed', ctermbg = 'LightRed' })
hi('CursorColumn', { bg = 'Grey90', ctermbg = 'LightGrey' })
hi('CursorLine', { bg = 'Grey90', cterm = { underline = true } })
hi('CursorLineNr', { fg = 'Brown', bold = true, ctermfg = 'Brown', cterm = { underline = true } })
hi('DiffAdd', { bg = 'LightBlue', ctermbg = 'LightBlue' })
hi('DiffChange', { bg = 'LightMagenta', ctermbg = 'LightMagenta' })
hi('DiffDelete', { fg = 'Blue', bg = 'LightCyan', bold = true, ctermfg = 'Blue', ctermbg = 'LightCyan' })
hi('Directory', { fg = 'Blue', ctermfg = 'DarkBlue' })
hi('FoldColumn', { fg = 'DarkBlue', bg = 'Grey', ctermfg = 'DarkBlue', ctermbg = 'Grey' })
hi('Folded', { fg = 'DarkBlue', bg = 'LightGrey', ctermfg = 'DarkBlue', ctermbg = 'Grey' })
hi('LineNr', { fg = 'Brown', ctermfg = 'Brown' })
hi('MatchParen', { bg = 'Cyan', ctermbg = 'Cyan' })
hi('MoreMsg', { fg = 'SeaGreen', bold = true, ctermfg = 'DarkGreen' })
hi('Pmenu', { bg = 'LightMagenta', ctermfg = 'Black', ctermbg = 'LightMagenta' })
hi('PmenuSel', { bg = 'Grey', ctermfg = 'Black', ctermbg = 'LightGrey' })
hi('PmenuThumb', { bg = 'Black', ctermbg = 'Black' })
hi('Question', { fg = 'SeaGreen', bold = true, ctermfg = 'DarkGreen' })
hi('Search', { bg = 'Yellow', ctermbg = 'Yellow' })
hi('SignColumn', { fg = 'DarkBlue', bg = 'Grey', ctermfg = 'DarkBlue', ctermbg = 'Grey' })
hi('SpecialKey', { fg = 'Blue', ctermfg = 'DarkBlue' })
hi('SpellBad', { sp = 'Red', undercurl = true, ctermbg = 'LightRed' })
hi('SpellCap', { sp = 'Blue', undercurl = true, ctermbg = 'LightBlue' })
hi('SpellLocal', { sp = 'DarkCyan', undercurl = true, ctermbg = 'Cyan' })
hi('SpellRare', { sp = 'Magenta', undercurl = true, ctermbg = 'LightMagenta' })
hi('StatusLineTerm', { fg = 'White', bg = 'DarkGreen', bold = true, ctermfg = 'White', ctermbg = 'DarkGreen', cterm = { bold = true } })
hi('StatusLineTermNC', { fg = 'White', bg = 'DarkGreen', ctermfg = 'White', ctermbg = 'DarkGreen' })
hi('TabLine', { bg = 'LightGrey', underline = true, ctermfg = 'Black', ctermbg = 'LightGrey', cterm = { underline = true } })
hi('Title', { fg = 'Magenta', bold = true, ctermfg = 'DarkMagenta' })
hi('Visual', { fg = 'Black', bg = 'LightGrey', ctermfg = 'Black', ctermbg = 'Grey' })
hi('WarningMsg', { fg = 'Red', ctermfg = 'DarkRed' })
hi('Comment', { fg = 'Blue', ctermfg = 'DarkBlue' })
hi('Constant', { fg = 'Magenta', ctermfg = 'DarkRed' })
hi('Special', { fg = '#6a5acd', ctermfg = 'DarkMagenta' })
hi('Identifier', { fg = 'DarkCyan', ctermfg = 'DarkCyan' })
hi('Statement', { fg = 'Brown', bold = true, ctermfg = 'Brown' })
hi('PreProc', { fg = '#6a0dad', ctermfg = 'DarkMagenta' })
hi('Type', { fg = 'SeaGreen', bold = true, ctermfg = 'DarkGreen' })
hi('Underlined', { fg = 'SlateBlue', underline = true, ctermfg = 'DarkMagenta', cterm = { underline = true } })
hi('Ignore', { ctermfg = 'White' })
else
-- Default colors only used with a dark background.
hi('ColorColumn', { bg = 'DarkRed', ctermbg = 'DarkRed' })
hi('CursorColumn', { bg = 'Grey40', ctermbg = 'DarkGrey' })
hi('CursorLine', { bg = 'Grey40', cterm = { underline = true } })
hi('CursorLineNr', { fg = 'Yellow', bold = true, ctermfg = 'Yellow', cterm = { underline = true } })
hi('DiffAdd', { bg = 'DarkBlue', ctermbg = 'DarkBlue' })
hi('DiffChange', { bg = 'DarkMagenta', ctermbg = 'DarkMagenta' })
hi('DiffDelete', { fg = 'Blue', bg = 'DarkCyan', bold = true, ctermfg = 'Blue', ctermbg = 'DarkCyan' })
hi('Directory', { fg = 'Cyan', ctermfg = 'LightCyan' })
hi('FoldColumn', { fg = 'Cyan', bg = 'Grey', ctermfg = 'Cyan', ctermbg = 'DarkGrey' })
hi('Folded', { fg = 'Cyan', bg = 'DarkGrey', ctermfg = 'Cyan', ctermbg = 'DarkGrey' })
hi('LineNr', { fg = 'Yellow', ctermfg = 'Yellow' })
hi('MatchParen', { bg = 'DarkCyan', ctermbg = 'DarkCyan' })
hi('MoreMsg', { fg = 'SeaGreen', bold = true, ctermfg = 'LightGreen' })
hi('Pmenu', { bg = 'Magenta', ctermfg = 'Black', ctermbg = 'Magenta' })
hi('PmenuSel', { bg = 'DarkGrey', ctermfg = 'DarkGrey', ctermbg = 'Black' })
hi('PmenuThumb', { bg = 'White', ctermbg = 'White' })
hi('Question', { fg = 'Green', bold = true, ctermfg = 'LightGreen' })
hi('Search', { fg = 'Black', bg = 'Yellow', ctermfg = 'Black', ctermbg = 'Yellow' })
hi('SignColumn', { fg = 'Cyan', bg = 'Grey', ctermfg = 'Cyan', ctermbg = 'DarkGrey' })
hi('SpecialKey', { fg = 'Cyan', ctermfg = 'LightBlue' })
hi('SpellBad', { sp = 'Red', undercurl = true, ctermbg = 'Red' })
hi('SpellCap', { sp = 'Blue', undercurl = true, ctermbg = 'Blue' })
hi('SpellLocal', { sp = 'Cyan', undercurl = true, ctermbg = 'Cyan' })
hi('SpellRare', { sp = 'Magenta', undercurl = true, ctermbg = 'Magenta' })
hi('TabLine', { bg = 'DarkGrey', underline = true, ctermfg = 'White', ctermbg = 'DarkGrey', cterm = { underline = true } })
hi('Title', { fg = 'Magenta', bold = true, ctermfg = 'LightMagenta' })
hi('Visual', { fg = 'LightGrey', bg = '#575757', ctermfg = 'Black', ctermbg = 'Grey' })
hi('WarningMsg', { fg = 'Red', ctermfg = 'LightRed' })
hi('Comment', { fg = '#80a0ff', ctermfg = 'Cyan' })
hi('Constant', { fg = '#ffa0a0', ctermfg = 'Magenta' })
hi('Special', { fg = 'Orange', ctermfg = 'LightRed' })
hi('Identifier', { fg = '#40ffff', ctermfg = 'Cyan', cterm = { bold = true } })
hi('Statement', { fg = '#ffff60', bold = true, ctermfg = 'Yellow' })
hi('PreProc', { fg = '#ff80ff', ctermfg = 'LightBlue' })
hi('Type', { fg = '#60ff60', bold = true, ctermfg = 'LightGreen' })
hi('Underlined', { fg = '#80a0ff', underline = true, ctermfg = 'LightBlue', cterm = { underline = true } })
hi('Ignore', { ctermfg = 'Black' })
hi('ColorColumn', { bg = 'DarkRed', ctermbg = 'DarkRed' })
hi('CursorColumn', { bg = 'Grey40', ctermbg = 'DarkGrey' })
hi('CursorLine', { bg = 'Grey40', cterm = { underline = true } })
hi('CursorLineNr', { fg = 'Yellow', bold = true, ctermfg = 'Yellow', cterm = { underline = true } })
hi('DiffAdd', { bg = 'DarkBlue', ctermbg = 'DarkBlue' })
hi('DiffChange', { bg = 'DarkMagenta', ctermbg = 'DarkMagenta' })
hi('DiffDelete', { fg = 'Blue', bg = 'DarkCyan', bold = true, ctermfg = 'Blue', ctermbg = 'DarkCyan' })
hi('Directory', { fg = 'Cyan', ctermfg = 'LightCyan' })
hi('FoldColumn', { fg = 'Cyan', bg = 'Grey', ctermfg = 'Cyan', ctermbg = 'DarkGrey' })
hi('Folded', { fg = 'Cyan', bg = 'DarkGrey', ctermfg = 'Cyan', ctermbg = 'DarkGrey' })
hi('LineNr', { fg = 'Yellow', ctermfg = 'Yellow' })
hi('MatchParen', { bg = 'DarkCyan', ctermbg = 'DarkCyan' })
hi('MoreMsg', { fg = 'SeaGreen', bold = true, ctermfg = 'LightGreen' })
hi('Pmenu', { bg = 'Magenta', ctermfg = 'Black', ctermbg = 'Magenta' })
hi('PmenuSel', { bg = 'DarkGrey', ctermfg = 'DarkGrey', ctermbg = 'Black' })
hi('PmenuThumb', { bg = 'White', ctermbg = 'White' })
hi('Question', { fg = 'Green', bold = true, ctermfg = 'LightGreen' })
hi('Search', { fg = 'Black', bg = 'Yellow', ctermfg = 'Black', ctermbg = 'Yellow' })
hi('SignColumn', { fg = 'Cyan', bg = 'Grey', ctermfg = 'Cyan', ctermbg = 'DarkGrey' })
hi('SpecialKey', { fg = 'Cyan', ctermfg = 'LightBlue' })
hi('SpellBad', { sp = 'Red', undercurl = true, ctermbg = 'Red' })
hi('SpellCap', { sp = 'Blue', undercurl = true, ctermbg = 'Blue' })
hi('SpellLocal', { sp = 'Cyan', undercurl = true, ctermbg = 'Cyan' })
hi('SpellRare', { sp = 'Magenta', undercurl = true, ctermbg = 'Magenta' })
hi('StatusLineTerm', { fg = 'Black', bg = 'LightGreen', bold = true, ctermfg = 'Black', ctermbg = 'LightGreen', cterm = { bold = true } })
hi('StatusLineTermNC', { fg = 'Black', bg = 'LightGreen', ctermfg = 'Black', ctermbg = 'LightGreen' })
hi('TabLine', { bg = 'DarkGrey', underline = true, ctermfg = 'White', ctermbg = 'DarkGrey', cterm = { underline = true } })
hi('Title', { fg = 'Magenta', bold = true, ctermfg = 'LightMagenta' })
hi('Visual', { fg = 'LightGrey', bg = '#575757', ctermfg = 'Black', ctermbg = 'Grey' })
hi('WarningMsg', { fg = 'Red', ctermfg = 'LightRed' })
hi('Comment', { fg = '#80a0ff', ctermfg = 'Cyan' })
hi('Constant', { fg = '#ffa0a0', ctermfg = 'Magenta' })
hi('Special', { fg = 'Orange', ctermfg = 'LightRed' })
hi('Identifier', { fg = '#40ffff', ctermfg = 'Cyan', cterm = { bold = true } })
hi('Statement', { fg = '#ffff60', bold = true, ctermfg = 'Yellow' })
hi('PreProc', { fg = '#ff80ff', ctermfg = 'LightBlue' })
hi('Type', { fg = '#60ff60', bold = true, ctermfg = 'LightGreen' })
hi('Underlined', { fg = '#80a0ff', underline = true, ctermfg = 'LightBlue', cterm = { underline = true } })
hi('Ignore', { ctermfg = 'Black' })
end
--stylua: ignore end