From 52f30a198a19bf5da6aa95cc642bfbb99b9bbfbf Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Tue, 28 Oct 2025 00:31:50 +0100 Subject: [PATCH] fix(util.lsp): `Snacks.util.lsp.on()` should trigger for each lsp client per buffer --- lua/snacks/util/lsp.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lua/snacks/util/lsp.lua b/lua/snacks/util/lsp.lua index 40bbde27..3084da05 100644 --- a/lua/snacks/util/lsp.lua +++ b/lua/snacks/util/lsp.lua @@ -35,8 +35,9 @@ local function _handle(filter) local clients = vim.lsp.get_clients(f) for _, client in ipairs(clients) do for buf in pairs(client.attached_buffers) do - if not state.done[buf] then - state.done[buf] = true + local key = ("%d:%d"):format(client.id, buf) + if not state.done[key] then + state.done[key] = true local ok, err = pcall(state.cb, buf, client) if not ok then vim.schedule(function()