From 4c2699111730a14144224d7b193bede6b707b1bc Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Thu, 16 May 2024 11:55:11 +0200 Subject: [PATCH] perf(ui_attach): router now only queues messages in `vim.ui_attach`. Use `SafeState` to execute queue when needed. --- lua/noice/message/router.lua | 5 +++++ lua/noice/ui/init.lua | 6 ++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lua/noice/message/router.lua b/lua/noice/message/router.lua index a18d32db..3e5689b8 100644 --- a/lua/noice/message/router.lua +++ b/lua/noice/message/router.lua @@ -33,6 +33,10 @@ function M.enable() M._updater = Util.interval(Config.options.throttle, Util.protect(M.update)) end M._updater() + vim.api.nvim_create_autocmd("SafeState", { + group = vim.api.nvim_create_augroup("NoiceRouter", { clear = true }), + callback = M.update, + }) end function M.disable() @@ -42,6 +46,7 @@ function M.disable() Manager.clear() M.update() end + vim.api.nvim_create_augroup("NoiceRouter", { clear = true }) end ---@param route NoiceRouteConfig diff --git a/lua/noice/ui/init.lua b/lua/noice/ui/init.lua index c5b21f47..a66f796d 100644 --- a/lua/noice/ui/init.lua +++ b/lua/noice/ui/init.lua @@ -4,7 +4,6 @@ local Config = require("noice.config") local Util = require("noice.util") local Router = require("noice.message.router") local Manager = require("noice.message.manager") -local Hacks = require("noice.util.hacks") ---@alias NoiceEvent MsgEvent|CmdlineEvent|NotifyEvent|LspEvent ---@alias NoiceKind MsgKind|NotifyLevel|LspKind @@ -97,9 +96,8 @@ function M.enable() -- check if we need to update the ui if Manager.tick() > tick then - -- Util.debug(vim.inspect({ event, stack_level, Util.is_blocking(), tick, kind, ... })) - if Util.is_blocking() and event ~= "msg_ruler" and kind ~= "search_count" then - Util.try(Router.update) + do + -- Util.debug(vim.inspect({ event, stack_level, Util.is_blocking(), tick, kind, ... })) end else local widget = M.parse_event(event)