From dcaf2073369c672655722472aa4e7bcba7757f4c Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 11 Apr 2023 16:51:31 +0800 Subject: [PATCH] fix(highlight): combine ColorColumn with low-priority CursorLine (#23017) --- src/nvim/drawline.c | 2 +- test/functional/ui/highlight_spec.lua | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/nvim/drawline.c b/src/nvim/drawline.c index fcac837993..27e1632559 100644 --- a/src/nvim/drawline.c +++ b/src/nvim/drawline.c @@ -2668,7 +2668,7 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool nochange, if (wp->w_p_cuc && VCOL_HLC == (long)wp->w_virtcol) { col_attr = cuc_attr; } else if (draw_color_col && VCOL_HLC == *color_cols) { - col_attr = mc_attr; + col_attr = hl_combine_attr(wlv.line_attr_lowprio, mc_attr); } col_attr = hl_combine_attr(col_attr, wlv.line_attr); diff --git a/test/functional/ui/highlight_spec.lua b/test/functional/ui/highlight_spec.lua index fedfaca7ba..89b503141b 100644 --- a/test/functional/ui/highlight_spec.lua +++ b/test/functional/ui/highlight_spec.lua @@ -1411,10 +1411,10 @@ describe('ColorColumn highlight', function() [3] = {foreground = Screen.colors.Brown}, -- LineNr [4] = {foreground = Screen.colors.Brown, bold = true}, -- CursorLineNr [5] = {foreground = Screen.colors.Blue, bold = true}, -- NonText - -- NonText and ColorColumn [6] = {foreground = Screen.colors.Blue, background = Screen.colors.LightRed, bold = true}, [7] = {reverse = true, bold = true}, -- StatusLine [8] = {reverse = true}, -- StatusLineNC + [9] = {background = Screen.colors.Grey90, foreground = Screen.colors.Red}, }) screen:attach() end) @@ -1500,6 +1500,25 @@ describe('ColorColumn highlight', function() | ]]) end) + + it('is combined with low-priority CursorLine highlight #23016', function() + screen:try_resize(40, 2) + command('set colorcolumn=30 cursorline') + screen:expect([[ + {2:^ }{1: }{2: }| + | + ]]) + command('hi clear ColorColumn') + screen:expect([[ + {2:^ }| + | + ]]) + command('hi ColorColumn guifg=Red') + screen:expect([[ + {2:^ }{9: }{2: }| + | + ]]) + end) end) describe("MsgSeparator highlight and msgsep fillchar", function()