neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 98e2da7d50b8f22edb20cdb744788ef0085d0cb6
parent e0aa1d87e81ddf4efec96fad8365b3ea1aee1c26
Author: Oliver Marriott <rktjmp@users.noreply.github.com>
Date:   Fri, 17 Jun 2022 11:33:58 +1000

fix(hl): return cterm fg/bg even if they match Normal #18981

Fixes #18980

- 831fa45ad84e is related but this doesn't regress that
- The `cterm_normal_fg_color != ae.cterm_fg_color` comparison is originally
  carried from patch to patch starting all the way back in 29bc6dfabde2 where it
  was avoiding setting a HL attr. But `hlattrs2dict()` now is just
  informational.

Diffstat:
Msrc/nvim/highlight.c | 4++--
Mtest/functional/api/highlight_spec.lua | 7+++++++
2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/nvim/highlight.c b/src/nvim/highlight.c @@ -792,11 +792,11 @@ Dictionary hlattrs2dict(HlAttrs ae, bool use_rgb) PUT(hl, "special", INTEGER_OBJ(ae.rgb_sp_color)); } } else { - if (cterm_normal_fg_color != ae.cterm_fg_color && ae.cterm_fg_color != 0) { + if (ae.cterm_fg_color != 0) { PUT(hl, "foreground", INTEGER_OBJ(ae.cterm_fg_color - 1)); } - if (cterm_normal_bg_color != ae.cterm_bg_color && ae.cterm_bg_color != 0) { + if (ae.cterm_bg_color != 0) { PUT(hl, "background", INTEGER_OBJ(ae.cterm_bg_color - 1)); } } diff --git a/test/functional/api/highlight_spec.lua b/test/functional/api/highlight_spec.lua @@ -133,6 +133,13 @@ describe('API: highlight',function() eq({ underline = true, standout = true, }, meths.get_hl_by_name('cursorline', 0)); + -- Test cterm & Normal values. #18024 (tail) & #18980 + -- Ensure Normal, and groups that match Normal return their fg & bg cterm values + meths.set_hl(0, 'Normal', {ctermfg = 17, ctermbg = 213}) + meths.set_hl(0, 'NotNormal', {ctermfg = 17, ctermbg = 213}) + -- Note colors are "cterm" values, not rgb-as-ints + eq({foreground = 17, background = 213}, nvim("get_hl_by_name", 'Normal', false)) + eq({foreground = 17, background = 213}, nvim("get_hl_by_name", 'NotNormal', false)) end) it('nvim_get_hl_id_by_name', function()