aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-09-21 07:03:26 +0800
committerGitHub <noreply@github.com>2023-09-21 07:03:26 +0800
commitdc6c11394b73803028d04498c80a538fe6aa4310 (patch)
tree94880118e8f4a5ebb6ce70b7c6abcf96a30883ab
parent473d0aa3e6ab22eb8e10c88c3971764f1b069825 (diff)
downloadrneovim-dc6c11394b73803028d04498c80a538fe6aa4310.tar.gz
rneovim-dc6c11394b73803028d04498c80a538fe6aa4310.tar.bz2
rneovim-dc6c11394b73803028d04498c80a538fe6aa4310.zip
fix(statuscolumn): update number hl for each screen line (#25277)
-rw-r--r--src/nvim/drawline.c6
-rw-r--r--test/functional/ui/statuscolumn_spec.lua2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/nvim/drawline.c b/src/nvim/drawline.c
index f246830215..73021d83a8 100644
--- a/src/nvim/drawline.c
+++ b/src/nvim/drawline.c
@@ -1410,8 +1410,7 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool number_onl
statuscol.width = win_col_off(wp) - (cmdwin_type != 0 && wp == curwin);
statuscol.use_cul = use_cursor_line_highlight(wp, lnum);
statuscol.sign_cul_id = statuscol.use_cul ? sign_cul.hl_id : 0;
- statuscol.num_attr = sign_num.hl_id ? syn_id2attr(sign_num.hl_id)
- : get_line_number_attr(wp, &wlv);
+ statuscol.num_attr = sign_num.hl_id > 0 ? syn_id2attr(sign_num.hl_id) : 0;
} else {
if (sign_cul.hl_id > 0) {
sign_cul_attr = syn_id2attr(sign_cul.hl_id);
@@ -1740,6 +1739,9 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool number_onl
wlv.draw_state = WL_STC;
// Draw the 'statuscolumn' if option is set.
if (statuscol.draw) {
+ if (sign_num.hl_id == 0) {
+ statuscol.num_attr = get_line_number_attr(wp, &wlv);
+ }
if (statuscol.textp == NULL) {
v = (ptr - line);
get_statuscol_str(wp, lnum, wlv.row - startrow - wlv.filler_lines, &statuscol);
diff --git a/test/functional/ui/statuscolumn_spec.lua b/test/functional/ui/statuscolumn_spec.lua
index 742976cbe2..a7830abe8f 100644
--- a/test/functional/ui/statuscolumn_spec.lua
+++ b/test/functional/ui/statuscolumn_spec.lua
@@ -475,7 +475,7 @@ describe('statuscolumn', function()
aaaaaaaaa |
{1:virtual-2 15}virt_line1 |
{1:virtual-2 15}virt_line2 |
- {1:buffer 0 16}{5:^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}|
+ {4:buffer 0 16}{5:^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}|
{5:aaaaaaaaa }|
{1:virtual-1 16}END |
{0:~ }|