From 170277257a976e2f669351676974a7bc51e88b5a Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Wed, 16 Nov 2022 21:39:09 +0100 Subject: [PATCH] fix: fixed flickering during substitute & cmdpreview --- lua/noice/util/hacks.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lua/noice/util/hacks.lua b/lua/noice/util/hacks.lua index f05a80a0..7f3d83fd 100644 --- a/lua/noice/util/hacks.lua +++ b/lua/noice/util/hacks.lua @@ -229,9 +229,13 @@ function M.fix_cmp() end) end +local was_in_cmdline = false function M.cmdline_force_redraw() local ffi = require("noice.util.ffi") - if ffi.cmdpreview then + local pos = vim.fn.getcmdpos() + local in_cmdline = pos < #vim.fn.getcmdline() + 1 + if ffi.cmdpreview and (in_cmdline or was_in_cmdline) then + was_in_cmdline = in_cmdline -- HACK: this will trigger redraw during substitute and cmdpreview, -- but when moving the cursor, the screen will be cleared until -- a new character is entered