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) <noreply@anthropic.com>
This commit is contained in:
Folke Lemaitre 2026-03-21 08:55:20 +01:00
parent 6dadcc2065
commit 6d0da34de9
No known key found for this signature in database
GPG key ID: 9B52594D560070AB

View file

@ -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