Resumen del video
codeDude presenta un video de tono casual tras un periodo de inactividad en su canal en español, motivado por sus responsabilidades laborales, vida personal y el desarrollo de su blog en koudud.xyz. El objetivo principal es documentar su transición de Neovim 0.10 a la versión 0.12, comparando detalladamente su configuración anterior basada en lazy.nvim con el nuevo gestor de paquetes nativo vim.pack.
Inicialmente, explica cómo actualizó la invocación de su entorno mediante alias en .zsh. Destaca que vim.pack reemplaza a gestores externos, almacenando los plugins directamente en el directorio site/pack/core/start de Neovim y eliminando la necesidad de manipular manualmente el runtimepath (rtp), una tarea que antes realizaba lazy.nvim. Aunque esta integración simplifica la gestión, codeDude señala que se pierde la capacidad de importar automáticamente todos los archivos Lua de un directorio, obligándolo a realizar require manual, lo cual considera redundante y contrario al principio DRY.
En cuanto a la configuración de plugins, codeDude explica que lazy.nvim resolvía el orden de carga de dependencias automáticamente. Con vim.pack, debe cargar manualmente las dependencias compartidas (como plenary.nvim y un plugin de íconos) al inicio de su configuración para satisfacer los requisitos de otros plugins. La definición de atajos de teclado y opciones también se vuelve más explícita, requiriendo llamadas directas a vim.keymap.set en lugar de utilizar tablas declarativas, aunque la funcionalidad final se mantiene idéntica.
Para replicar la carga diferida y las tareas de construcción (build) que ofrecía lazy.nvim, codeDude implementa autocomandos nativos. Utiliza el evento PackComplete para ejecutar comandos de TreeSitter tras instalar o actualizar un paquete, y eventos FileType para cargar plugins como vimtex únicamente al editar archivos .tex, empleando la opción load = false en vim.pack.add. Además, TreeSitter ahora es gestionado directamente por Neovim, lo que elimina la necesidad de plugins auxiliares y requiere autocomandos para iniciar los parsers según el tipo de archivo abierto.
Respecto a los servidores LSP, la configuración migró de lspconfig.setup() a las funciones nativas vim.lsp.enable() y vim.lsp.config(). Aunque el uso de lspconfig para definir configuraciones está deprecado, codeDude recomienda mantenerlo instalado. Esto permite que Neovim cargue las configuraciones predeterminadas de los clientes LSP en el runtimepath, facilitando la fusión automática de su configuración personalizada con la base oficial. Quienes prefieran un enfoque minimalista pueden extraer solo los archivos necesarios, pero codeDude opta por la conveniencia de conservar el plugin para evitar duplicar código.
Finalmente, codeDude detalla que eliminó mason.nvim debido a conflictos con entornos virtuales de Ruby, prefiriendo instalar herramientas de linting y formateo mediante el gestor de paquetes de su sistema (pacman). Para gestionar plugins con vim.pack, ya no basta con comentar la línea de configuración; es necesario ejecutar vim.pack.del() mediante un comando Lua para eliminarlos, y el sistema solicita confirmación para instalar nuevos plugins al reiniciar. Aunque se pierde la interfaz gráfica de lazy.nvim, codeDude mantiene ambas configuraciones activas para seguir experimentando y cierra invitando a la audiencia a compartir su preferencia entre el gestor nativo y las soluciones externas.