From d0bc8b7dcea44b7bc46580ce21001c4509d046c3 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sun, 2 Jul 2023 12:42:35 +0200 Subject: [PATCH] feat(lsp): added support to lsp keymaps for dynamic capabilities --- lua/lazyvim/plugins/lsp/init.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) 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