From 6d0da34de9c4a82170e3359d4e7853bf89a557b3 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sat, 21 Mar 2026 08:55:20 +0100 Subject: [PATCH] fix(lsp): sort server names before setting keymaps Sort server names so that `*` (wildcard) keymaps are registered before named servers, ensuring server-specific keymaps take precedence. Fixes #6956, Fixes #6903 Co-Authored-By: Claude Opus 4.6 (1M context) --- lua/lazyvim/plugins/lsp/init.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/lsp/init.lua b/lua/lazyvim/plugins/lsp/init.lua index 9a790b21..490bec3c 100644 --- a/lua/lazyvim/plugins/lsp/init.lua +++ b/lua/lazyvim/plugins/lsp/init.lua @@ -167,7 +167,10 @@ return { LazyVim.format.register(LazyVim.lsp.formatter()) -- setup keymaps - for server, server_opts in pairs(opts.servers) do + local names = vim.tbl_keys(opts.servers) ---@type string[] + table.sort(names) + for _, server in ipairs(names) do + local server_opts = opts.servers[server] if type(server_opts) == "table" and server_opts.keys then require("lazyvim.plugins.lsp.keymaps").set({ name = server ~= "*" and server or nil }, server_opts.keys) end