diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c index 853f2e8a8a..51bafb4238 100644 --- a/src/nvim/statusline.c +++ b/src/nvim/statusline.c @@ -348,7 +348,7 @@ static void win_redr_stl_expr(win_T *wp, bool draw_winbar, bool draw_ruler, bool opt_scope = ((*wp->w_p_stl != NUL) ? OPT_LOCAL : 0); } - attr = win_hl_attr(wp, (int)group); + attr = draw_ruler && !in_status_line ? HL_ATTR(group) : win_hl_attr(wp, (int)group); if (!wp->w_floating && in_status_line && !is_stl_global) { col += wp->w_wincol; } diff --git a/test/functional/ui/statusline_spec.lua b/test/functional/ui/statusline_spec.lua index 0b676be6f9..c70015b78f 100644 --- a/test/functional/ui/statusline_spec.lua +++ b/test/functional/ui/statusline_spec.lua @@ -818,6 +818,15 @@ describe('statusline', function() {2:[No Name] 0,0-1 All}| 0,0-1 All | ]]) + command('set rulerformat=%17(%l,%c%V%=%P%)') + screen:expect([[ + | + {1:~}{15:^ }{1: }| + {1:~ }|*4 + {2:[No Name] 0,0-1 All}| + 0,0-1 All | + ]]) + command('set rulerformat&') api.nvim_win_close(win, true) screen:expect([[ ^ |