104 lines
2.9 KiB
Lua
104 lines
2.9 KiB
Lua
---@module "config.lazy"
|
|
--- This module bootstraps Lazy.nvim.
|
|
--- Lazy is a plugin manager for Neovim.
|
|
-- ╭─────────────────────────────────────────────────────────╮
|
|
-- │ Lazy │
|
|
-- ╰─────────────────────────────────────────────────────────╯
|
|
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
|
|
if not vim.uv.fs_stat(lazypath) then
|
|
-- stylua: ignore
|
|
vim.fn.system({
|
|
"git",
|
|
"clone",
|
|
"--filter=blob:none",
|
|
"https://github.com/folke/lazy.nvim.git",
|
|
"--branch=stable", lazypath
|
|
})
|
|
end
|
|
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
|
|
|
|
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ PLUGINS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
local plugin_specs = {
|
|
{ -- LazyVim
|
|
'LazyVim/LazyVim',
|
|
priority = 900,
|
|
opts = require('data.types').lazyvim.opts,
|
|
},
|
|
{
|
|
import = 'lazyvim.plugins', -- LazyVim Core Plugins
|
|
},
|
|
{ -- VSCode
|
|
import = 'lazyvim.plugins.extras.vscode',
|
|
},
|
|
{ import = 'lvplugs' }, -- LazyVim Plugins
|
|
{ import = 'plugins' }, -- General Plugins
|
|
}
|
|
|
|
-- Automatically import all subdirectories of `lua/plugins`
|
|
local plugin_dirs = vim.fn.glob('~/.config/nvim/lua/plugins/*', true, true)
|
|
for _, dir in ipairs(plugin_dirs) do
|
|
if vim.fn.isdirectory(dir) == 1 then
|
|
table.insert( -- Add directory to the plugin import table
|
|
plugin_specs,
|
|
{ import = 'plugins.' .. vim.fn.fnamemodify(dir, ':t') }
|
|
)
|
|
end
|
|
end
|
|
|
|
-- Initialize Lazy plugin manager
|
|
require('lazy').setup({
|
|
spec = plugin_specs,
|
|
rocks = {
|
|
hererocks = vim.g.use_luarocks,
|
|
},
|
|
---@diagnostic disable-next-line: assign-type-mismatch
|
|
dev = {
|
|
fallback = true,
|
|
},
|
|
install = {
|
|
missing = true,
|
|
colorscheme = {
|
|
-- 'ex-catppuccin-mocha',
|
|
'catppuccin-mocha',
|
|
'tokyonight',
|
|
'default',
|
|
},
|
|
},
|
|
defaults = {
|
|
lazy = true,
|
|
version = nil,
|
|
event = 'VeryLazy',
|
|
},
|
|
checker = {
|
|
-- automatically check for plugin updates
|
|
enabled = true,
|
|
notify = true,
|
|
frequency = 3600,
|
|
check_pinned = false,
|
|
},
|
|
change_detection = {
|
|
-- automatically check for config file changes and reload the ui
|
|
enabled = true,
|
|
notify = false,
|
|
},
|
|
performance = {
|
|
cache = {
|
|
enabled = true,
|
|
},
|
|
reset_packpath = true,
|
|
rtp = {
|
|
reset = true, -- reset the runtime path to $VIMRUNTIME and your config directory
|
|
disabled_plugins = require('data.types').lazy.disabled_plugins,
|
|
},
|
|
},
|
|
profiling = {
|
|
loader = true,
|
|
require = true,
|
|
},
|
|
ui = {
|
|
border = 'rounded',
|
|
title = ' Plugin Manager ',
|
|
},
|
|
})
|