aboutsummaryrefslogtreecommitdiffstats
path: root/lua/pi/lsp/attach.lua
diff options
context:
space:
mode:
authorElvis Claros Castro <elvis@claros.ar>2025-08-30 19:21:25 -0300
committerElvis Claros Castro <elvis@claros.ar>2025-08-30 19:21:25 -0300
commitec011dd9c8d4372f4f8566b87981ecc178675adf (patch)
tree671b6be58f94528f790f05422bc75a1c3f988172 /lua/pi/lsp/attach.lua
parentbcb5775dabf2b9144d8a87721d0095d087827f3e (diff)
downloadnvim-conf-ec011dd9c8d4372f4f8566b87981ecc178675adf.tar.gz
nvim-conf-ec011dd9c8d4372f4f8566b87981ecc178675adf.zip
feat(lsp): migración a configuración nativa de LSP en Neovim y mejora de servidores
- Refactoriza la configuración de LSP para usar vim.lsp.start/autocmd nativo, eliminando la dependencia de lspconfig en la mayoría de los servidores. - Añade funciones auxiliares para detección de directorio raíz y configuración de comandos de servidores. - Asegura que todos los servidores LSP tengan filetypes y capabilities explícitos para mejor integración. - Actualiza dependencias de plugins y eventos para soportar el nuevo flujo nativo de LSP. - Mejora el soporte de inlay hints y agrega un mapeo de teclas para alternar inlay hints. - Reemplaza el uso de lspconfig.util por vim.fs.find nativo para detección de raíz. - Marca la integración legacy de mason como obsoleta, favoreciendo la verificación nativa de ejecutables. - Limpia y estandariza los archivos de configuración de servidores para mayor consistencia. - Elimina el archivo no utilizado MIGRACION_BLINK.md. Esta migración permite mejor compatibilidad con Neovim 0.11+, simplifica la gestión de LSP y mejora el rendimiento y la fiabilidad.
Diffstat (limited to 'lua/pi/lsp/attach.lua')
-rw-r--r--lua/pi/lsp/attach.lua13
1 files changed, 12 insertions, 1 deletions
diff --git a/lua/pi/lsp/attach.lua b/lua/pi/lsp/attach.lua
index 03002d6..24842fe 100644
--- a/lua/pi/lsp/attach.lua
+++ b/lua/pi/lsp/attach.lua
@@ -16,6 +16,13 @@ return function(client, bufnr)
}
end, { buffer = 0, desc = "LSP format file" })
+ -- Add inlay hint toggle
+ vim.keymap.set("n", "<leader>vh", function()
+ local current = vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr })
+ vim.lsp.inlay_hint.enable(not current, { bufnr = bufnr })
+ vim.notify("Inlay hints " .. (current and "disabled" or "enabled"))
+ end, { buffer = 0, desc = "LSP Toggle inlay hints" })
+
telescope_mapper("gr", "lsp_references", { buffer = true, desc = "LSP References of symbol on cursor" })
telescope_mapper("<leader>pv", "find_symbol", { buffer = true, desc = "LSP find symbol on the project" })
telescope_mapper("<leader>pd", "lsp_document_symbols", { buffer = true, desc = "LSP document symbols" })
@@ -23,7 +30,11 @@ return function(client, bufnr)
vim.bo.omnifunc = "v:lua.vim.lsp.omnifunc"
+ -- Enable inlay hints if supported (Neovim 0.11+ compatible)
+ -- Use pcall to handle any potential errors with inlay hints
if client.server_capabilities.inlayHintProvider then
- vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
+ pcall(function()
+ vim.lsp.inlay_hint.enable(true, { bufnr = bufnr })
+ end)
end
end