2025-05-28 18:33:04 +02:00

150 lines
4.2 KiB
Lua

-- Archivo: ~/.config/nvim/init.lua
-- 1. Cargar configuraciones de tipos de archivo antes de plugins
pcall(require, 'filetype') -- Ignorar errores si filetype.lua no existe
-- 2. Definir la lista principal de plugins
local plugins = {
"tpope/vim-sleuth", -- Detecta automáticamente tabstop y shiftwidth
-- "gc" para comentar regiones/lineas visuales
{ "numToStr/Comment.nvim", opts = {} },
{ -- Añade signos relacionados con Git al gutter, además de utilidades para gestionar cambios
"lewis6991/gitsigns.nvim",
opts = {},
},
{
-- Si quieres ver qué esquemas de colores ya están instalados, puedes usar `:Telescope colorscheme`.
"catppuccin/nvim",
priority = 1000, -- Asegúrate de cargar esto antes que otros plugins de inicio.
init = function()
-- Cargar el esquema de colores aquí.
vim.cmd.colorscheme("catppuccin-mocha")
-- Puedes configurar highlights de la siguiente manera:
vim.cmd.hi("Comment gui=none")
end,
},
-- Resalta TODOs, notas, etc. en comentarios
{
"folke/todo-comments.nvim",
event = "VimEnter",
dependencies = { "nvim-lua/plenary.nvim" },
opts = { signs = false },
},
{
"nvim-lualine/lualine.nvim",
opts = {
options = {
disabled_filetypes = { "NERDTree", "NvimTree_1" },
},
},
},
{ "vimwiki/vimwiki" },
{
"NvChad/nvim-colorizer.lua",
config = function()
require("colorizer").setup()
end,
}, -- Coloriza colores hexadecimales
{
"f-person/git-blame.nvim",
config = function()
require("gitblame").setup({ enabled = true })
end,
},
{
"lambdalisue/suda.vim",
},
{ "windwp/nvim-ts-autotag" },
-- Lazy.nvim
{
"hiasr/vim-zellij-navigator.nvim",
config = function()
require("vim-zellij-navigator").setup()
end,
},
{
"danymat/neogen",
config = function()
local neogen = require("neogen")
neogen.setup({
snippet_engine = "luasnip",
})
local opts = { noremap = true, silent = true }
vim.keymap.set("n", "<leader>nc", function()
neogen.generate({ snippet_engine = "luasnip" })
end, opts)
end,
},
}
-- 3. Cargar los plugins de LSP desde 'lua/plugins/lsp.lua'
local ok, lsp_plugins = pcall(require, 'plugins.lsp')
if not ok then
vim.notify("Error al cargar 'plugins.lsp': " .. lsp_plugins, vim.log.levels.ERROR)
lsp_plugins = {}
end
-- 4. Verificar que lsp_plugins sea una tabla
if type(lsp_plugins) ~= 'table' then
vim.notify("'plugins.lsp' no retorna una tabla. Verifica su configuración.", vim.log.levels.ERROR)
lsp_plugins = {}
end
-- 5. Combinar ambas listas de plugins
vim.list_extend(plugins, lsp_plugins)
-- 6. Cargar configuraciones adicionales de plugins (como ansible.lua)
local ok_ansible, ansible_plugins = pcall(require, 'plugins.ansible')
if not ok_ansible then
vim.notify("Error al cargar 'plugins.ansible': " .. ansible_plugins, vim.log.levels.ERROR)
ansible_plugins = {}
end
if type(ansible_plugins) ~= 'table' then
vim.notify("'plugins.ansible' no retorna una tabla. Verifica su configuración.", vim.log.levels.ERROR)
ansible_plugins = {}
end
vim.list_extend(plugins, ansible_plugins)
-- 7. Cargar configuraciones adicionales de plugins (como copilot.lua)
local ok_copilot, copilot_plugins = pcall(require, 'plugins.copilot')
if not ok_copilot then
vim.notify("Error al cargar 'plugins.copilot': " .. copilot_plugins, vim.log.levels.ERROR)
copilot_plugins = {}
end
if type(copilot_plugins) ~= 'table' then
vim.notify("'plugins.copilot' no retorna una tabla. Verifica su configuración.", vim.log.levels.ERROR)
copilot_plugins = {}
end
vim.list_extend(plugins, copilot_plugins)
-- 8. Cargar configuraciones adicionales de plugins (como nvim-cmp.lua) [Opcional]
-- Si has separado la configuración de nvim-cmp, cárgala aquí
local ok_cmp, cmp_plugins = pcall(require, 'plugins.nvim-cmp')
if not ok_cmp then
vim.notify("Error al cargar 'plugins.nvim-cmp': " .. cmp_plugins, vim.log.levels.ERROR)
cmp_plugins = {}
end
if type(cmp_plugins) ~= 'table' then
vim.notify("'plugins.nvim-cmp' no retorna una tabla. Verifica su configuración.", vim.log.levels.ERROR)
cmp_plugins = {}
end
vim.list_extend(plugins, cmp_plugins)
-- 9. Retornar la lista combinada para Lazy.nvim
return plugins