nvim: prevent lsp from overriding some ftplugin bindings

This commit is contained in:
Primrose 2025-07-11 12:50:43 +02:00
parent c9c2b84413
commit e7f4595b52
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA

View file

@ -8,11 +8,13 @@ M.on_attach = function(client, bufnr)
---@param bind string ---@param bind string
---@param cmd function | string ---@param cmd function | string
---@param desc string ---@param desc string
local function nnoremap(bind, cmd, desc) ---@param extraArgs? table
local function nnoremap(bind, cmd, desc, extraArgs)
local args = { local args = {
buffer = bufnr, buffer = bufnr,
desc = "LSP: " .. desc, desc = "LSP: " .. desc,
} }
args = vim.tbl_deep_extend("keep", args, extraArgs or {})
vim.keymap.set("n", bind, cmd, args) vim.keymap.set("n", bind, cmd, args)
end end
@ -24,7 +26,7 @@ M.on_attach = function(client, bufnr)
-- TODO: Maybe remove these or use the defaults? -- TODO: Maybe remove these or use the defaults?
nnoremap("<leader>cl", vim.lsp.codelens.run, "run codelens") nnoremap("<leader>cl", vim.lsp.codelens.run, "run codelens")
nnoremap("<leader>r", vim.lsp.buf.rename, "rename symbol") nnoremap("<leader>r", vim.lsp.buf.rename, "rename symbol")
nnoremap("<leader>f", function() vim.lsp.buf.format { async = true } end, "format buffer") pcall(nnoremap, "<leader>f", function() vim.lsp.buf.format { async = true } end, "format buffer", { unique = true })
local filetype = vim.api.nvim_get_option_value("filetype", { buf = bufnr }) local filetype = vim.api.nvim_get_option_value("filetype", { buf = bufnr })
if if