diff --git a/lua/noice/message/router.lua b/lua/noice/message/router.lua index e03d4269..11e9e011 100644 --- a/lua/noice/message/router.lua +++ b/lua/noice/message/router.lua @@ -224,6 +224,7 @@ function M.update() if not vim.tbl_isempty(updates) then Util.stats.track("router.update.updated") M._need_redraw = true + Util.redraw() end M._updating = false diff --git a/lua/noice/util/hacks.lua b/lua/noice/util/hacks.lua index 7eb0763f..dff37ebf 100644 --- a/lua/noice/util/hacks.lua +++ b/lua/noice/util/hacks.lua @@ -37,11 +37,7 @@ function M.fix_redraw() return timer:stop() end if not Util.is_search() then - if vim.api.nvim__redraw then - vim.api.nvim__redraw({ flush = true }) - else - vim.cmd.redraw() - end + Util.redraw() end end) ) diff --git a/lua/noice/util/init.lua b/lua/noice/util/init.lua index 56ec80c8..00f63163 100644 --- a/lua/noice/util/init.lua +++ b/lua/noice/util/init.lua @@ -249,8 +249,14 @@ function M.is_blocking(opts) return reason ~= nil, reason end -function M.redraw() - vim.cmd.redraw() +---@param opts? vim.api.keyset.redraw +function M.redraw(opts) + if vim.api.nvim__redraw then + opts = opts or { flush = true } + vim.api.nvim__redraw(opts) + else + vim.cmd.redraw() + end M.stats.track("redraw") end