aboutsummaryrefslogtreecommitdiffstats
path: root/lua/pi/lsp/servers/lua_ls.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/servers/lua_ls.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/servers/lua_ls.lua')
-rw-r--r--lua/pi/lsp/servers/lua_ls.lua25
1 files changed, 23 insertions, 2 deletions
diff --git a/lua/pi/lsp/servers/lua_ls.lua b/lua/pi/lsp/servers/lua_ls.lua
index 3975310..c641911 100644
--- a/lua/pi/lsp/servers/lua_ls.lua
+++ b/lua/pi/lsp/servers/lua_ls.lua
@@ -3,10 +3,25 @@ local lsp_flags = require "pi.lsp.flags"
return function(ops)
if ops.neodev == true then
- require("neodev").setup()
+ -- Setup neodev with explicit configuration for native LSP
+ require("neodev").setup {
+ library = {
+ enabled = true,
+ runtime = true,
+ types = true,
+ plugins = true,
+ },
+ setup_jsonls = true,
+ lspconfig = false, -- Don't let neodev override lspconfig setup
+ }
end
-
+
+ local capabilities = require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities())
+
return vim.tbl_extend("force", {
+ cmd = { "lua-language-server" },
+ filetypes = { "lua" },
+ capabilities = capabilities,
on_attach = lsp_attach,
flags = lsp_flags,
settings = {
@@ -26,6 +41,12 @@ return function(ops)
},
hint = {
enable = true,
+ -- Disable some problematic hints that might cause position issues
+ setType = false,
+ paramType = true,
+ paramName = "Disable", -- Can be "All", "Literal", "Disable"
+ semicolon = "Disable", -- Can be "All", "SameLine", "Disable"
+ arrayIndex = "Disable", -- Can be "All", "Auto", "Disable"
},
completion = {
callSnippet = "Replace",