diff options
| author | Ariel D'Alessandro <dalessandro.ariel@gmail.com> | 2023-01-27 10:18:36 +0100 |
|---|---|---|
| committer | Ariel D'Alessandro <dalessandro.ariel@gmail.com> | 2023-01-27 10:18:36 +0100 |
| commit | cb91eb9cd60d53ee6435ffa040bf48b5891d8978 (patch) | |
| tree | 76b036e3150e550ffd2731ab2bf5f2b0e37a594a | |
| parent | e44d73a9c8baa7079eff6f0bf821d30b87680f5c (diff) | |
| download | nvim-conf-cb91eb9cd60d53ee6435ffa040bf48b5891d8978.tar.gz nvim-conf-cb91eb9cd60d53ee6435ffa040bf48b5891d8978.zip | |
wip: continue improving readme
| -rw-r--r-- | README.md | 52 | ||||
| -rw-r--r-- | lazy-lock.json | 10 |
2 files changed, 55 insertions, 7 deletions
@@ -1,10 +1,13 @@ # Configuration Para Neovim Esta es mi configuracion para neovim. -La uso en mi cotidiano y podes verlos en mis videos de [youtube](https://youtube.com/@Alpha_Dev) y directos en [twtich](https://twitch.tv/theAlphaDeveloper) +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). + ## TODO add screenshot ## Opciones, Autocomandos y Keymaps @@ -17,3 +20,50 @@ 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. +Utilizando una funcion como valor para `config` donde directamente configuro lo necesario ahi. +Utilizando una funcion como valor para `config` donde llamo a otro archivo como `./lua/alpha/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", + dependencies = { + "tpope/vim-dadbod", + "kristijanhusak/vim-dadbod-completion", + "tpope/vim-dotenv", + }, + keys = {{"<leader><leader>db", ':tab DBUI<cr>'}}, + init = function () + require("alpha.database") + 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. + +Otra manera para hacer el lazyloading es con la opcion `cmd` la cual funciona similar a la de `keys` pero solo que recibe los comandos con los cual va a triggerear la carga del plugin y luego la ejecucion. + +Definiendo especificamente `lazy = true`, la cual le dice a lazy que no la incluya directamente solo cuando otro plugin lo llame, util para configurar librerias + +La ultima es definiendo por eventos. Los eventos son señales que neovim envia y que en este caso vamos a estar utilizando para triggerear la carga del plugin. En mi configuracion el que utilizo es `VeryLazy` que es un evento de Lazy que indica que ya se cargo neovim y el usuario gano control. Entonces en ese momento se dispara la carga de otros plugins por detras. +Lo utilizo en mis configuraciones como telescope, lsp, dressing, snippets y completition. + +## Colorschem 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/) diff --git a/lazy-lock.json b/lazy-lock.json index 7a99189..57ad956 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -10,10 +10,9 @@ "cmp-nvim-lua": { "branch": "main", "commit": "f3491638d123cfd2c8048aefaf66d246ff250ca6" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" }, - "composer.nvim": { "branch": "main", "commit": "e62eaaef7c978d96a2abfeb2ca570650a4f21528" }, "dressing.nvim": { "branch": "master", "commit": "4436d6f41e2f6b8ada57588acd1a9f8b3d21453c" }, "fidget.nvim": { "branch": "main", "commit": "44585a0c0085765195e6961c15529ba6c5a2a13b" }, - "fzf.vim": { "branch": "master", "commit": "bdf48c282ad2174c25c059b3cdb7956427b07a99" }, + "fzf.vim": { "branch": "master", "commit": "dc71692255b62d1f67dc55c8e51ab1aa467b1d46" }, "git-worktree.nvim": { "branch": "master", "commit": "d7f4e2584e81670154f07ca9fa5dd791d9c1b458" }, "gitsigns.nvim": { "branch": "main", "commit": "c52162b7b34a21bdc476425a4ab562c2f7bf1bb1" }, "harpoon": { "branch": "master", "commit": "8c0bb0a328e57278f4783bb0e2ea32f296d36db1" }, @@ -32,20 +31,19 @@ "null-ls.nvim": { "branch": "main", "commit": "2ff0a4ed1985d04bae3f21915ee0b1be3932c164" }, "nvim-autopairs": { "branch": "master", "commit": "31042a5823b55c4bfb30efcbba2fc1b5b53f90dc" }, "nvim-cmp": { "branch": "main", "commit": "e7e2ef7031db8e0cfad7ad9916ec766ddd9dbb3b" }, - "nvim-dap": { "branch": "master", "commit": "c64a6627bb01eb151da96b28091797beaac09536" }, + "nvim-dap": { "branch": "master", "commit": "6236a9eed59c8a4d8165918b5f87b72c645bb02c" }, "nvim-dap-go": { "branch": "main", "commit": "6f045a72a05a78e4071dd0880f08214a2bb1461b" }, "nvim-dap-ui": { "branch": "master", "commit": "b3b977095877e8acc1ff236cffc81b5331619493" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "191345947a92a5188d791e9786a5b4f205dcaca3" }, "nvim-dap-vscode-js": { "branch": "main", "commit": "e7c05495934a658c8aa10afd995dacd796f76091" }, - "nvim-lspconfig": { "branch": "master", "commit": "1d3203b4c39ea5ec63cf1271d9e3b14a91706897" }, + "nvim-lspconfig": { "branch": "master", "commit": "01185a87523b7054038dd60f0524ea3a8e1c6885" }, "nvim-notify": { "branch": "master", "commit": "bdd647f61a05c9b8a57c83b78341a0690e9c29d7" }, "nvim-projectconfig": { "branch": "master", "commit": "05fd34831e170db269d1b84597615bcdcdde930e" }, "nvim-transparent": { "branch": "main", "commit": "6816751e3d595b3209aa475a83b6fbaa3a5ccc98" }, - "nvim-treesitter": { "branch": "master", "commit": "6ae94e0341bead5bc00c4d14396fb7fd28629d3a" }, + "nvim-treesitter": { "branch": "master", "commit": "14a360c72d26f5ed00cda81c76d8895cec08bf47" }, "nvim-treesitter-refactor": { "branch": "master", "commit": "75f5895cc662d61eb919da8050b7a0124400d589" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "71cee2f7b1211fe35918ce5fd0f626c48d9c1e3d" }, "nvim-web-devicons": { "branch": "master", "commit": "3548363849878ef895ce54edda02421279b419d8" }, - "php-code-actions.nvim": { "branch": "main", "commit": "a85a695c58f9c5e8033d824ffae366e9797e0b28" }, "playground": { "branch": "master", "commit": "c19bcfd6a3681bc876e1b861f6685bfc04972d0d" }, "plenary.nvim": { "branch": "master", "commit": "1c7e3e6b0f4dd5a174fcea9fda8a4d7de593b826" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, |