aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorElvis Claros Castro <elvis@claros.ar>2026-04-23 23:15:45 -0300
committerElvis Claros Castro <elvis@claros.ar>2026-04-23 23:15:45 -0300
commit2895ac732dce0eece5ab2586f5d4d76ee0fab710 (patch)
tree16735209162d1b3e3118de8cea23e8541d087ba9 /README.md
parent7a32abb7c07c320cdeae19897d9daaea48acb1bb (diff)
downloadnvim-conf-2895ac732dce0eece5ab2586f5d4d76ee0fab710.tar.gz
nvim-conf-2895ac732dce0eece5ab2586f5d4d76ee0fab710.zip
feat(neovim): integrar CodeCompanion/MCPHub, añadir autocompletado AI y actualizar plugins
- Añadir integración completa de CodeCompanion (mcphub, adaptadores, UI, herramientas, historial, paleta de acciones) - Configuración de build/portado de `mcphub` y opciones de tiempo de ejecución - Configurar adaptadores, herramientas por defecto y múltiples adaptadores para `chat`/`inline`/`cmd` - Añadir autocomandos de CodeCompanion para mostrar/ocultar el spinner - Añadir keymaps relacionados con CodeCompanion - Añadir proveedor de autocompletado AI `minuet-ai` y cambiar la fuente de completado por defecto a `minuet` - Eliminar el archivo de configuración antiguo de Copilot y varios archivos de configuración de plugins obsoletos (`lua/config/copilot.lua`, `lua/plugins/foatterm.lua`, `lua/plugins/img-clip.lua`, `lua/plugins/markdown-preview.lua`, `lua/plugins/markview.lua`) - Actualizar muchos pines de plugins en `lazy-lock.json` (bump/reemplazo de commits) - Comentar los `autocmd` de trim de espacios en blanco y `clang-format` (deshabilita comportamiento de autoformateo/auto-guardar) - Establecer opciones globales: - desactivar el autoformateo global de LazyVim: `vim.g.autoformat = false` - evitar que `:w` agregue automáticamente un salto de línea final: `opt.fixeol = false` - Ajustes de UI: - agregar resaltados `FloatBorder`/`FloatTitle` y hacer `PmenuSel` en negrita - Añadir keymap específico para Rust: sobrescribir `K` para invocar las acciones de hover de `rustaceanvim` - Actualizar/limpiar muchas configuraciones de plugins: - reescritura amplia de `lua/plugins/codecompanion.lua` - añadir/modificar opciones de `lua/plugins/image.lua` (`image.nvim`) - ajustar UI, pickers y keymaps de `lua/plugins/snacks.lua` - actualizar versión de `rustaceanvim` y desactivar `format_on_save` en `navigator` - varias correcciones de formato y consistencia en archivos de plugins - Actualizar `lua/config/keymaps.lua` para incluir bindings de CodeCompanion Notas: - Estos cambios modifican el comportamiento de formateo/autoformateo (autoformateo desactivado y algunos `autocmd` `BufWritePre` comentados). Revisa si quieres reactivar el formateo automático al guardar.
Diffstat (limited to 'README.md')
-rw-r--r--README.md26
1 files changed, 18 insertions, 8 deletions
diff --git a/README.md b/README.md
index 70e3b82..3e5021d 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,12 @@
# Configuracion Para Neovim
-Esta es mi configuracion para neovim.
+Esta es mí configuración para Neovim, un editor de texto que uso para programar.
La uso todos los dias, puede ser visto en mis videos de [youtube](https://youtube.com/@Alpha_Dev) y directos en [twtich](https://twitch.tv/theAlphaDeveloper)
El objetivo de mi configuracion es ayudarme en mi trabajo cotidiano convirtiendo neovim en la mejor herramienta para poder programar.
## Neovim
+
Utilizo siempre la ultima version de Neovim, hago el build desde el source code una vez por semana (quizas aveces mas si estoy aburrido jaja).
![](Neovim.png)
@@ -20,12 +21,14 @@ En el mismo directorio se encuentra la configuracion para "Diagnostic" donde con
Todas estas configuraciones las cargo con el evento `VeryLazy` utilizando un autocomando.
## Plugins
+
Para plugin manager utilizo [lazy](https://github.com/folke/lazy.nvim) el setup del plugin se encuentra en `./lua/config/lazy.lua`
Utilizo la funcionalidad de lazy donde se puede especificar un directorio `./lua/plugins/` como fuente para las especificaciones de los plugins.
Trato de configurar un plugin por archivo, llamando a este archivo como el plugin o como la funcionalidad que realiza.
Nota tambien tengo el archivo `./lua/plugins/init.lua` donde tengo los que no separe, o no me parece suficiente logica para separarlos en su propio archivo de una linea.
### Configuraciones
+
Para configurar los plugins utilizo la opcion de lazy `config` donde se puede definir de las siguientes formas.
Utilizando la opcion `opts` no es necesario utilizar el `config` dado que lazy va a ver la opcion y automaticamente hacer el `require("plugin").setup(opts)` con las opcioens definidas
Utilizando el valor `true` para `config` donde le indica que tiene que hacer el `require("plugin").setup()` pero sin opciones.
@@ -33,10 +36,12 @@ Utilizando una funcion como valor para `config` donde directamente configuro lo
Utilizando una funcion como valor para `config` donde llamo a otro archivo como `./lua/pi/lsp` donde la configuracion es extensa y entonces no quiero tenerla toda ahi.
### LazyLoading
+
Dado que utilizamos el package manager llamado lazy no podia dejar de hablar de esto que es una de sus configuraciones mas importantes, como configurar los plugins para que se carguen solo cuando son necesarios.
Es normal que plugins son solamente requeridos para algunos momentos, entonces no tiene sentido hacerlos cargar al inicio cuando no sabemos siquiera si van a ser ejecutados.
Como ejemplo voy a utilizar `./lua/plugins/database.lua` que es el cual me permite realizar consultas a bases de datos desde dentro de neovim [video](https://youtu.be/su7lWYjnM44).
Este cumple con lo antes mencionado que no quiero que se cargue cuando inicia neovim.
+
```lua
return {
"kristijanhusak/vim-dadbod-ui",
@@ -51,7 +56,9 @@ return {
end
}
```
+
Para poder realizar eso utilizo la propiedad `keys` la cual cumple una doble funcion.
+
- le indica a lazy que el plugin solo debe cargarse cuando se apreta esa combinacion de teclas.
- Si tiene un segundo argumento la definicion la toma como el valor o funcion con la cual configurar el keymap, lo cual permite tener un solo lugar donde definir los keymas para el plugin y que lazy sepa cuales son.
@@ -63,12 +70,14 @@ La ultima es definiendo por eventos. Los eventos son señales que neovim envia y
Lo utilizo en mis configuraciones como telescope, lsp, dressing, snippets y completition.
## Colorscheme y fuentes
+
Para colorschem uso [Tokyo Night](https://github.com/folke/tokyonight.nvim)
Como fuente utilizo [Victor Mono](https://rubjo.github.io/victor-mono)
Utilizo el mismo theme para mi terminal Kitty, y la configuracion de la fuente esta en kitty
Para symbolos utilizo como complemento los symbolos de [NerdFonts](https://www.nerdfonts.com/)
## LSP soportando lenguajes
+
Neovim implementa un cliente de LSP (language server protocol). Esto nos permite una mayor interaccion con distintos lenguajes sin requerir distintos plugins para cada lenaguaje individual.
Neovim en si no sabe nada de los lenguajes que le digamos, neovim simplemente sabe como actuar como cliente, esta en nosotros intalar el servidor correspondiente al lenguaje correspondiente y decirle a neovim como queremos interactuar.
Mi configuración esta separada en las siguientes partes
@@ -76,18 +85,19 @@ Mi configuración esta separada en las siguientes partes
- `./lua/plugins/lsp.lua`: Aca es donde tengo definidos los paquetes que utilizo relacionado a lsp
- `./lua/pi/lsp`: en este directorio esta mi configuracion en relacion a esto
- `./lua/pi/lsp/init.lua`: es el primer archivo en cargar. en este configuro mason quien se va a encargar de instalarlos servidores de lsp necesarios.
-Luego aplico la configuracion particular para cada server.
-Idealmente este archivo no necesesita ser modificado.
+ Luego aplico la configuracion particular para cada server.
+ Idealmente este archivo no necesesita ser modificado.
- `./lua/pi/lsp/attach.lua`: este ya es un archivo más interesante, en donde configuro los mappings relacionados a lsp
-estos solamente van a registrarse para buffers que tengan asociado un servidor de lsp.
-Aca se pueden cambiar los keybindings o registrar nuevas funciones
-- `./lua/pi/lsp/servers.lua`: acá llegamos al más importante donde registramos los servidores con los mismos nombres que *lspconfig* [ref](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md). En este archivo tenemos una lista que la clave es el nombre del server y como valor es la funcion de registro, para la mayoria podemos utilizar el default, pero algunos servidores tienen una configuracion adicional para esto se puede registrar un callback que debera devolver una tabla con los parametros necesarios.
-
+ estos solamente van a registrarse para buffers que tengan asociado un servidor de lsp.
+ Aca se pueden cambiar los keybindings o registrar nuevas funciones
+- `./lua/pi/lsp/servers.lua`: acá llegamos al más importante donde registramos los servidores con los mismos nombres que _lspconfig_ [ref](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md). En este archivo tenemos una lista que la clave es el nombre del server y como valor es la funcion de registro, para la mayoria podemos utilizar el default, pero algunos servidores tienen una configuracion adicional para esto se puede registrar un callback que debera devolver una tabla con los parametros necesarios.
## Completition
+
Como motor de completition utilizo `nvim/cmp`. este provee todas las funcionalidas que necesito.
la configuration se puede encontrar en `./lua/pi/completition/init.lua` donde defino los keymaps y se configura la integracion con las distintas fuentes como lsp, path, luasnip y otros plugins.
## Snippets
-Para snippets utilizo *LuaSnip*, el cual la configuración la mantengo en `./lua/plugins/snippets.lua`.
+
+Para snippets utilizo _LuaSnip_, el cual la configuración la mantengo en `./lua/plugins/snippets.lua`.
Pero en este archivo no mantengo los snippets en si mismos, en este solamente tengo la configuracion de como interactua, los snippets se encuentran en `./lua/pi/snips/ft/` cual carpeta contiene un archivo por cada file type y se registran automaticamente cuando agrego un nuevo archivo (recargar con `<leader><leader>s`, o reiniciar neovim).