diff --git a/lua/lazyvim/plugins/lsp/init.lua b/lua/lazyvim/plugins/lsp/init.lua index b3f9d00c..ffa48d3c 100644 --- a/lua/lazyvim/plugins/lsp/init.lua +++ b/lua/lazyvim/plugins/lsp/init.lua @@ -92,6 +92,17 @@ return { require("lazyvim.plugins.lsp.keymaps").on_attach(client, buffer) end) + local register_capability = vim.lsp.handlers["client/registerCapability"] + + vim.lsp.handlers["client/registerCapability"] = function(err, res, ctx) + local client_id = ctx.client_id + ---@type lsp.Client + local client = vim.lsp.get_client_by_id(client_id) + local buffer = vim.api.nvim_get_current_buf() + require("lazyvim.plugins.lsp.keymaps").on_attach(client, buffer) + return register_capability(err, res, ctx) + end + -- diagnostics for name, icon in pairs(require("lazyvim.config").icons.diagnostics) do name = "DiagnosticSign" .. name