From e7f4595b52fb0678093190fd67a04e9b747f669b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 11 Jul 2025 12:50:43 +0200 Subject: [PATCH] nvim: prevent lsp from overriding some ftplugin bindings --- .config/nvim/lua/lsp.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.config/nvim/lua/lsp.lua b/.config/nvim/lua/lsp.lua index 3b35161a..d720c41c 100644 --- a/.config/nvim/lua/lsp.lua +++ b/.config/nvim/lua/lsp.lua @@ -8,11 +8,13 @@ M.on_attach = function(client, bufnr) ---@param bind string ---@param cmd function | string ---@param desc string - local function nnoremap(bind, cmd, desc) + ---@param extraArgs? table + local function nnoremap(bind, cmd, desc, extraArgs) local args = { buffer = bufnr, desc = "LSP: " .. desc, } + args = vim.tbl_deep_extend("keep", args, extraArgs or {}) vim.keymap.set("n", bind, cmd, args) end @@ -24,7 +26,7 @@ M.on_attach = function(client, bufnr) -- TODO: Maybe remove these or use the defaults? nnoremap("cl", vim.lsp.codelens.run, "run codelens") nnoremap("r", vim.lsp.buf.rename, "rename symbol") - nnoremap("f", function() vim.lsp.buf.format { async = true } end, "format buffer") + pcall(nnoremap, "f", function() vim.lsp.buf.format { async = true } end, "format buffer", { unique = true }) local filetype = vim.api.nvim_get_option_value("filetype", { buf = bufnr }) if