ソースを参照

dev: automated commit - 2025-12-22 17:13:42

Mariano Z. 1 ヶ月 前
コミット
2879a2ca5d
1 ファイル変更22 行追加31 行削除
  1. 22 31
      lua/plugins/lsp.lua

+ 22 - 31
lua/plugins/lsp.lua

@@ -55,39 +55,30 @@ function M.config()
   }
 
   for _, server in ipairs(servers) do
-    lspconfig[server].setup({})
-  end
-
-  vim.api.nvim_create_autocmd("LspAttach", {
-    group = vim.api.nvim_create_augroup("lsp", { clear = true }),
-    callback = function(ev)
-      local opts = { buffer = ev.buf, silent = true }
-      local client = vim.lsp.get_client_by_id(ev.data.client_id)
-
-      nmap("K", vim.lsp.buf.hover, vim.tbl_extend("force", opts, { desc = "Hover Doc" }))
-      nmap("<C-h>", vim.lsp.buf.signature_help, vim.tbl_extend("force", opts, { desc = "Signature Help" }))
-      nmap("<leader>r", vim.lsp.buf.rename, vim.tbl_extend("force", opts, { desc = "Rename" }))
-      nmap("<leader>ca", vim.lsp.buf.code_action, vim.tbl_extend("force", opts, { desc = "Code Action" }))
-      nmap("vd", vim.diagnostic.open_float, vim.tbl_extend("force", opts, { desc = "View Diagnostics" }))
-      nmap("<leader>lr", "<cmd>LspRestart<CR>", vim.tbl_extend("force", opts, { desc = "Restart LSP" }))
-
-      if client and client.server_capabilities.documentHighlightProvider then
-        local hl_group = vim.api.nvim_create_augroup("lsp_document_highlight_" .. ev.buf, { clear = true })
+    lspconfig[server].setup({
+      on_attach = function(client, bufnr)
+        local opts = { buffer = bufnr, silent = true }
 
-        vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
-          group = hl_group,
-          buffer = ev.buf,
-          callback = vim.lsp.buf.document_highlight,
-        })
+        nmap("K", vim.lsp.buf.hover, vim.tbl_extend("force", opts, { desc = "Hover Doc" }))
+        nmap("<C-h>", vim.lsp.buf.signature_help, vim.tbl_extend("force", opts, { desc = "Signature Help" }))
+        nmap("<leader>r", vim.lsp.buf.rename, vim.tbl_extend("force", opts, { desc = "Rename" }))
+        nmap("<leader>ca", vim.lsp.buf.code_action, vim.tbl_extend("force", opts, { desc = "Code Action" }))
+        nmap("vd", vim.diagnostic.open_float, vim.tbl_extend("force", opts, { desc = "View Diagnostics" }))
+        nmap("<leader>lr", "<cmd>LspRestart<CR>", vim.tbl_extend("force", opts, { desc = "Restart LSP" }))
 
-        vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
-          group = hl_group,
-          buffer = ev.buf,
-          callback = vim.lsp.buf.clear_references,
-        })
-      end
-    end,
-  })
+        if client.server_capabilities.documentHighlightProvider then
+          vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
+            buffer = bufnr,
+            callback = vim.lsp.buf.document_highlight,
+          })
+          vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
+            buffer = bufnr,
+            callback = vim.lsp.buf.clear_references,
+          })
+        end
+      end,
+    })
+  end
 end
 
 return M