commit 8bc28978b632362ae658f8d4a6327e07a8b371b2
parent 2cd72258f6be0ea20f0341be9bc0d306c4533535
Author: luukvbaal <luukvbaal@gmail.com>
Date: Fri, 24 Jan 2025 00:42:24 +0100
fix(column): apply custom highlight to last 'statuscolumn' segment (#32182)
Diffstat:
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/nvim/drawline.c b/src/nvim/drawline.c
@@ -654,8 +654,8 @@ static void draw_statuscol(win_T *wp, winlinevars_T *wlv, linenr_T lnum, int vir
p = sp->start;
}
size_t translen = transstr_buf(p, buf + len - p, transbuf, MAXPATHL, true);
- draw_col_buf(wp, wlv, transbuf, translen, num_attr, fold_vcol, false);
- draw_col_fill(wlv, schar_from_ascii(' '), stcp->width - width, num_attr);
+ draw_col_buf(wp, wlv, transbuf, translen, cur_attr, fold_vcol, false);
+ draw_col_fill(wlv, schar_from_ascii(' '), stcp->width - width, cur_attr);
}
static void handle_breakindent(win_T *wp, winlinevars_T *wlv)
diff --git a/test/functional/ui/statuscolumn_spec.lua b/test/functional/ui/statuscolumn_spec.lua
@@ -227,6 +227,14 @@ describe('statuscolumn', function()
{1: }{8:8│}aaaaa |
|
]])
+ -- Last segment and fillchar are highlighted properly
+ command("set stc=%#Error#%{v:relnum?'Foo':'FooBar'}")
+ screen:expect([[
+ {9:Foo }aaaaa |*4
+ {9:FooBar}^aaaaa |
+ {9:Foo }aaaaa |*8
+ |
+ ]])
end)
it('works with wrapped lines, signs and folds', function()