From 9d1333a385fc9e00716215c14c73a4254e048a39 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 18 Jul 2025 07:37:17 +0800 Subject: [PATCH] vim-patch:9.1.1563: completion: ruler may disappear (#34977) Problem: The ruler disappears after typing the second character during insert mode completion, even when completion messages are suppressed ('shortmess' includes "c"). This makes the UI appear inconsistent. Solution: Ensure the ruler is restored during screen redraw when popup completion is active (Girish Palya). Notes: No new tests were added, as existing screen dump tests were updated to reflect the corrected behavior. closes: vim/vim#17770 https://github.com/vim/vim/commit/824286c9a727811ed93e4e2f4f10944f735436e7 Nvim already behaves correctly as the popup menu is a separate grid in the compositor. Co-authored-by: Girish Palya --- src/nvim/statusline.c | 2 +- test/functional/editor/completion_spec.lua | 5 +++-- test/old/testdir/test_popup.vim | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c index 29ca338afa..d452b0efaa 100644 --- a/src/nvim/statusline.c +++ b/src/nvim/statusline.c @@ -415,7 +415,7 @@ void redraw_ruler(void) return; } - // Check if cursor.lnum is valid, since win_redr_ruler() may be called + // Check if cursor.lnum is valid, since redraw_ruler() may be called // after deleting lines, before cursor.lnum is corrected. if (wp->w_cursor.lnum > wp->w_buffer->b_ml.ml_line_count) { return; diff --git a/test/functional/editor/completion_spec.lua b/test/functional/editor/completion_spec.lua index 03d13ba3e7..7cf0e4247d 100644 --- a/test/functional/editor/completion_spec.lua +++ b/test/functional/editor/completion_spec.lua @@ -1376,6 +1376,7 @@ describe('completion', function() -- oldtest: Test_shortmess() it('shortmess+=c turns off completion messages', function() + command('set ruler') command([[call setline(1, ['hello', 'hullo', 'heee'])]]) feed('Goh') screen:expect([[ @@ -1399,7 +1400,7 @@ describe('completion', function() {12:hello }{1: }| {4:hullo }{1: }| {4:heee }{1: }| - {5:-- INSERT --} | - ]]) + {5:-- INSERT --} 4,6 All | + ]]) end) end) diff --git a/test/old/testdir/test_popup.vim b/test/old/testdir/test_popup.vim index 81f18631e9..cb2baf74b4 100644 --- a/test/old/testdir/test_popup.vim +++ b/test/old/testdir/test_popup.vim @@ -220,7 +220,6 @@ func Test_popup_complete() set completeopt& endfunc - func Test_popup_completion_insertmode() new inoremap =ListMonths()