BREAKING CHANGE: utilize lazy.nvim fully, remove un-needed functions

This commit is contained in:
siduck 2023-02-17 22:08:28 +05:30 committed by Sidhanth Rathod
parent 5246faa09a
commit 6590372791
9 changed files with 140 additions and 217 deletions

View file

@ -85,37 +85,6 @@ M.load_mappings = function(section, mapping_opt)
end
end
-- merge default/user plugin tables
M.merge_plugins = function(plugins)
local user_plugins = M.load_config().plugins
plugins = merge_tb("force", plugins, M.load_config().plugins)
local final_table = {}
for key, val in pairs(plugins) do
if val then
plugins[key] = (val.rm_default_opts and user_plugins[key]) or plugins[key]
plugins[key][1] = key
final_table[#final_table + 1] = plugins[key]
end
end
return final_table
end
-- override plugin options table with custom ones
M.load_override = function(options_table, name)
local user_plugins = M.load_config().plugins
local plugin_options = {}
if user_plugins[name] then
plugin_options = user_plugins[name].override_options or {}
plugin_options = type(plugin_options) == "table" and plugin_options or plugin_options()
end
return merge_tb("force", options_table, plugin_options)
end
M.lazy_load = function(plugin)
vim.api.nvim_create_autocmd({ "BufRead", "BufWinEnter", "BufNewFile" }, {
group = vim.api.nvim_create_augroup("BeLazyOnFileOpen" .. plugin, {}),

View file

@ -115,7 +115,4 @@ if cmp_style ~= "atom" and cmp_style ~= "atom_colored" then
options.window.completion.border = border "CmpBorder"
end
-- check for any override
options = require("core.utils").load_override(options, "hrsh7th/nvim-cmp")
cmp.setup(options)
return options

View file

@ -27,10 +27,4 @@ local options = {
max_concurrent_installers = 10,
}
options = require("core.utils").load_override(options, "williamboman/mason.nvim")
vim.api.nvim_create_user_command("MasonInstallAll", function()
vim.cmd("MasonInstall " .. table.concat(options.ensure_installed, " "))
end, {})
require("mason").setup(options)
return options

View file

@ -75,8 +75,6 @@ local options = {
},
}
-- check for any override
options = require("core.utils").load_override(options, "nvim-tree/nvim-tree.lua")
vim.g.nvimtree_side = options.view.side
require("nvim-tree").setup(options)
return options

View file

@ -1,26 +1,7 @@
local M = {}
local load_override = require("core.utils").load_override
local utils = require "core.utils"
M.autopairs = function()
local options = {
fast_wrap = {},
disable_filetype = { "TelescopePrompt", "vim" },
}
options = load_override(options, "windwp/nvim-autopairs")
require("nvim-autopairs").setup(options)
-- setup cmp for autopairs
local cmp_autopairs = require "nvim-autopairs.completion.cmp"
require("cmp").event:on("confirm_done", cmp_autopairs.on_confirm_done())
end
M.blankline = function()
dofile(vim.g.base46_cache .. "blankline")
local options = {
M.blankline = {
indentLine_enabled = 1,
filetype_exclude = {
"help",
@ -37,26 +18,7 @@ M.blankline = function()
show_first_indent_level = false,
show_current_context = true,
show_current_context_start = true,
}
options = load_override(options, "lukas-reineke/indent-blankline.nvim")
require("indent_blankline").setup(options)
end
M.colorizer = function()
local options = {}
options = load_override(options, "NvChad/nvim-colorizer.lua")
require("colorizer").setup(options)
-- execute colorizer as soon as possible
vim.defer_fn(function()
require("colorizer").attach_to_buffer(0)
end, 0)
end
M.comment = function()
require("Comment").setup(load_override({}, "numToStr/Comment.nvim"))
end
}
M.luasnip = function()
local options = {
@ -64,7 +26,6 @@ M.luasnip = function()
updateevents = "TextChanged,TextChangedI",
}
options = load_override(options, "L3MON4D3/LuaSnip")
require("luasnip").config.set_config(options)
require("luasnip.loaders.from_vscode").lazy_load { paths = vim.g.luasnippets_path or "" }
@ -83,9 +44,7 @@ M.luasnip = function()
end
M.gitsigns = function()
dofile(vim.g.base46_cache .. "git")
local options = {
return {
signs = {
add = { hl = "DiffAdd", text = "", numhl = "GitSignsAddNr" },
change = { hl = "DiffChange", text = "", numhl = "GitSignsChangeNr" },
@ -98,18 +57,6 @@ M.gitsigns = function()
utils.load_mappings("gitsigns", { buffer = bufnr })
end,
}
options = load_override(options, "lewis6991/gitsigns.nvim")
require("gitsigns").setup(options)
end
M.devicons = function()
dofile(vim.g.base46_cache .. "devicons")
local options = { override = require("nvchad_ui.icons").devicons }
options = require("core.utils").load_override(options, "nvim-tree/nvim-web-devicons")
require("nvim-web-devicons").setup(options)
end
return M

View file

@ -54,13 +54,4 @@ local options = {
extensions_list = { "themes", "terms" },
}
local telescope = require "telescope"
-- check for any override
options = require("core.utils").load_override(options, "nvim-telescope/telescope.nvim")
telescope.setup(options)
-- load extensions
for _, ext in ipairs(options.extensions_list) do
telescope.load_extension(ext)
end
return options

View file

@ -11,7 +11,4 @@ local options = {
indent = { enable = true },
}
-- check for any override
options = require("core.utils").load_override(options, "nvim-treesitter/nvim-treesitter")
require("nvim-treesitter.configs").setup(options)
return options

View file

@ -30,6 +30,4 @@ local options = {
},
}
options = require("core.utils").load_override(options, "folke/which-key.nvim")
require("which-key").setup(options)
return options

View file

@ -1,16 +1,15 @@
-- All plugins have lazy=true by default,to load a plugin on startup just lazy=false
-- List of all default plugins & their definitions
local plugins = {
local default_plugins = {
["nvim-lua/plenary.nvim"] = {},
"nvim-lua/plenary.nvim",
["NvChad/extensions"] = { branch = "v2.0" },
-- nvchad plugins
{ "NvChad/extensions", branch = "v2.0" },
{ "NvChad/base46", branch = "v2.0" },
["NvChad/base46"] = {
branch = "v2.0",
},
["NvChad/ui"] = {
{
"NvChad/ui",
branch = "v2.0",
lazy = false,
config = function()
@ -18,55 +17,67 @@ local plugins = {
end,
},
["NvChad/nvterm"] = {
config = function()
{
"NvChad/nvterm",
init = require("core.utils").load_mappings "nvterm",
opts = {},
config = function(_, opts)
require "base46.term"
local options = require("core.utils").load_override({}, "NvChad/nvterm")
require("nvterm").setup(options)
end,
init = function()
require("core.utils").load_mappings "nvterm"
require("nvterm").setup(opts)
end,
},
["nvim-tree/nvim-web-devicons"] = {
{
"NvChad/nvim-colorizer.lua",
init = require("core.utils").lazy_load "nvim-colorizer.lua",
config = function()
require("plugins.configs.others").devicons()
require("colorizer").setup()
-- execute colorizer as soon as possible
vim.defer_fn(function()
require("colorizer").attach_to_buffer(0)
end, 0)
end,
},
["lukas-reineke/indent-blankline.nvim"] = {
{
"nvim-tree/nvim-web-devicons",
opts = function()
return { override = require("nvchad_ui.icons").devicons }
end,
config = function(_, opts)
dofile(vim.g.base46_cache .. "devicons")
require("nvim-web-devicons").setup(opts)
end,
},
{
"lukas-reineke/indent-blankline.nvim",
init = function()
require("core.utils").lazy_load "indent-blankline.nvim"
require("core.utils").load_mappings "blankline"
end,
config = function()
require("plugins.configs.others").blankline()
opts = require("plugins.configs.others").blankline,
config = function(_, opts)
dofile(vim.g.base46_cache .. "blankline")
require("indent_blankline").setup(opts)
end,
},
["NvChad/nvim-colorizer.lua"] = {
init = function()
require("core.utils").lazy_load "nvim-colorizer.lua"
end,
config = function()
require("plugins.configs.others").colorizer()
end,
},
["nvim-treesitter/nvim-treesitter"] = {
init = function()
require("core.utils").lazy_load "nvim-treesitter"
end,
cmd = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSEnable", "TSDisable", "TSModuleInfo" },
{
"nvim-treesitter/nvim-treesitter",
init = require("core.utils").lazy_load "nvim-treesitter",
cmd = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSModuleInfo" },
build = ":TSUpdate",
config = function()
require "plugins.configs.treesitter"
opts = require "plugins.configs.treesitter",
config = function(_, opts)
require("nvim-treesitter.configs").setup(opts)
end,
},
-- git stuff
["lewis6991/gitsigns.nvim"] = {
{
"lewis6991/gitsigns.nvim",
ft = "gitcommit",
init = function()
-- load gitsigns only when a git file is opened
@ -83,30 +94,37 @@ local plugins = {
end,
})
end,
config = function()
require("plugins.configs.others").gitsigns()
opts = require("plugins.configs.others").gitsigns,
config = function(_, opts)
dofile(vim.g.base46_cache .. "git")
require("gitsigns").setup(opts)
end,
},
-- lsp stuff
["williamboman/mason.nvim"] = {
{
"williamboman/mason.nvim",
cmd = { "Mason", "MasonInstall", "MasonInstallAll", "MasonUninstall", "MasonUninstallAll", "MasonLog" },
config = function()
require "plugins.configs.mason"
config = function(_, opts)
require("mason").setup(opts)
-- custom nvchad cmd to install all mason binaries listed
vim.api.nvim_create_user_command("MasonInstallAll", function()
vim.cmd("MasonInstall " .. table.concat(opts.ensure_installed, " "))
end, {})
end,
},
["neovim/nvim-lspconfig"] = {
init = function()
require("core.utils").lazy_load "nvim-lspconfig"
end,
{
"neovim/nvim-lspconfig",
init = require("core.utils").lazy_load "nvim-lspconfig",
config = function()
require "plugins.configs.lspconfig"
end,
},
-- load luasnips + cmp related in insert mode only
["hrsh7th/nvim-cmp"] = {
{
"hrsh7th/nvim-cmp",
event = "InsertEnter",
dependencies = {
{
@ -121,8 +139,16 @@ local plugins = {
-- autopairing of (){}[] etc
{
"windwp/nvim-autopairs",
config = function()
require("plugins.configs.others").autopairs()
opts = {
fast_wrap = {},
disable_filetype = { "TelescopePrompt", "vim" },
},
config = function(_, opts)
require("nvim-autopairs").setup(opts)
-- setup cmp for autopairs
local cmp_autopairs = require "nvim-autopairs.completion.cmp"
require("cmp").event:on("confirm_done", cmp_autopairs.on_confirm_done())
end,
},
@ -136,64 +162,70 @@ local plugins = {
},
},
config = function()
require "plugins.configs.cmp"
opts = function()
return require "plugins.configs.cmp"
end,
config = function(_, opts)
require("cmp").setup(opts)
end,
},
["numToStr/Comment.nvim"] = {
{
"numToStr/Comment.nvim",
-- keys = { "gc", "gb" },
init = require("core.utils").load_mappings "comment",
config = function()
require("plugins.configs.others").comment()
end,
init = function()
require("core.utils").load_mappings "comment"
require("Comment").setup()
end,
},
-- file managing , picker etc
["nvim-tree/nvim-tree.lua"] = {
{
"nvim-tree/nvim-tree.lua",
cmd = { "NvimTreeToggle", "NvimTreeFocus" },
config = function()
require "plugins.configs.nvimtree"
end,
init = function()
require("core.utils").load_mappings "nvimtree"
init = require("core.utils").load_mappings "nvimtree",
opts = require "plugins.configs.nvimtree",
config = function(_, opts)
require("nvim-tree").setup(opts)
end,
},
["nvim-telescope/telescope.nvim"] = {
{
"nvim-telescope/telescope.nvim",
cmd = "Telescope",
config = function()
require "plugins.configs.telescope"
init = require("core.utils").load_mappings "telescope",
opts = function()
return require "plugins.configs.telescope"
end,
init = function()
require("core.utils").load_mappings "telescope"
config = function(_, opts)
local telescope = require "telescope"
telescope.setup(opts)
-- load extensions
for _, ext in ipairs(opts.extensions_list) do
telescope.load_extension(ext)
end
end,
},
-- Only load whichkey after all the gui
["folke/which-key.nvim"] = {
{
"folke/which-key.nvim",
enabled = false,
keys = { "<leader>", '"', "'", "`" },
config = function()
require "plugins.configs.whichkey"
end,
init = function()
require("core.utils").load_mappings "whichkey"
init = require("core.utils").load_mappings "whichkey",
opts = require "plugins.configs.whichkey",
config = function(_, opts)
require("which-key").setup(opts)
end,
},
{ import = require("core.utils").load_config().plugins },
}
-- pin commits for all default plugins
for _, value in pairs(plugins) do
value.pin = true
end
plugins = require("core.utils").merge_plugins(plugins)
-- load lazy.nvim options
-- load lazy.nvim _,opts
local lazy_config = require "plugins.configs.lazy_nvim"
lazy_config = require("core.utils").load_override(lazy_config, "folke/lazy.nvim")
require("lazy").setup(plugins, lazy_config)
require("lazy").setup(default_plugins, lazy_config)