aboutsummaryrefslogtreecommitdiff
path: root/nvim/nvchad/lua/plugins/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/nvchad/lua/plugins/init.lua')
-rw-r--r--nvim/nvchad/lua/plugins/init.lua253
1 files changed, 253 insertions, 0 deletions
diff --git a/nvim/nvchad/lua/plugins/init.lua b/nvim/nvchad/lua/plugins/init.lua
new file mode 100644
index 0000000..bce7140
--- /dev/null
+++ b/nvim/nvchad/lua/plugins/init.lua
@@ -0,0 +1,253 @@
+-- All plugins have lazy=true by default,to load a plugin on startup just lazy=false
+-- List of all default plugins & their definitions
+local default_plugins = {
+
+ "nvim-lua/plenary.nvim",
+
+ {
+ "NvChad/base46",
+ branch = "v2.0",
+ build = function()
+ require("base46").load_all_highlights()
+ end,
+ },
+
+ {
+ "NvChad/ui",
+ branch = "v2.0",
+ lazy = false,
+ },
+
+ {
+ "NvChad/nvterm",
+ init = function()
+ require("core.utils").load_mappings "nvterm"
+ end,
+ config = function(_, opts)
+ require "base46.term"
+ require("nvterm").setup(opts)
+ end,
+ },
+
+ {
+ "NvChad/nvim-colorizer.lua",
+ event = "User FilePost",
+ config = function(_, opts)
+ require("colorizer").setup(opts)
+
+ -- execute colorizer as soon as possible
+ vim.defer_fn(function()
+ require("colorizer").attach_to_buffer(0)
+ end, 0)
+ end,
+ },
+
+ {
+ "nvim-tree/nvim-web-devicons",
+ opts = function()
+ return { override = require "nvchad.icons.devicons" }
+ end,
+ config = function(_, opts)
+ dofile(vim.g.base46_cache .. "devicons")
+ require("nvim-web-devicons").setup(opts)
+ end,
+ },
+
+ {
+ "lukas-reineke/indent-blankline.nvim",
+ version = "2.20.7",
+ event = "User FilePost",
+ opts = function()
+ return require("plugins.configs.others").blankline
+ end,
+ config = function(_, opts)
+ require("core.utils").load_mappings "blankline"
+ dofile(vim.g.base46_cache .. "blankline")
+ require("indent_blankline").setup(opts)
+ end,
+ },
+
+ {
+ "nvim-treesitter/nvim-treesitter",
+ event = { "BufReadPost", "BufNewFile" },
+ tag = "v0.9.2",
+ cmd = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSModuleInfo" },
+ build = ":TSUpdate",
+ opts = function()
+ return require "plugins.configs.treesitter"
+ end,
+ config = function(_, opts)
+ dofile(vim.g.base46_cache .. "syntax")
+ require("nvim-treesitter.configs").setup(opts)
+ end,
+ },
+
+ -- git stuff
+ {
+ "lewis6991/gitsigns.nvim",
+ event = "User FilePost",
+ opts = function()
+ return require("plugins.configs.others").gitsigns
+ end,
+ config = function(_, opts)
+ dofile(vim.g.base46_cache .. "git")
+ require("gitsigns").setup(opts)
+ end,
+ },
+
+ -- lsp stuff
+ {
+ "williamboman/mason.nvim",
+ cmd = { "Mason", "MasonInstall", "MasonInstallAll", "MasonUpdate" },
+ opts = function()
+ return require "plugins.configs.mason"
+ end,
+ config = function(_, opts)
+ dofile(vim.g.base46_cache .. "mason")
+ require("mason").setup(opts)
+
+ -- custom nvchad cmd to install all mason binaries listed
+ vim.api.nvim_create_user_command("MasonInstallAll", function()
+ if opts.ensure_installed and #opts.ensure_installed > 0 then
+ vim.cmd("MasonInstall " .. table.concat(opts.ensure_installed, " "))
+ end
+ end, {})
+
+ vim.g.mason_binaries_list = opts.ensure_installed
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ event = "User FilePost",
+ config = function()
+ require "plugins.configs.lspconfig"
+ end,
+ },
+
+ -- load luasnips + cmp related in insert mode only
+ {
+ "hrsh7th/nvim-cmp",
+ event = "InsertEnter",
+ dependencies = {
+ {
+ -- snippet plugin
+ "L3MON4D3/LuaSnip",
+ dependencies = "rafamadriz/friendly-snippets",
+ opts = { history = true, updateevents = "TextChanged,TextChangedI" },
+ config = function(_, opts)
+ require("plugins.configs.others").luasnip(opts)
+ end,
+ },
+
+ -- autopairing of (){}[] etc
+ {
+ "windwp/nvim-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,
+ },
+
+ -- cmp sources plugins
+ {
+ "saadparwaiz1/cmp_luasnip",
+ "hrsh7th/cmp-nvim-lua",
+ "hrsh7th/cmp-nvim-lsp",
+ "hrsh7th/cmp-buffer",
+ "hrsh7th/cmp-path",
+ },
+ },
+ opts = function()
+ return require "plugins.configs.cmp"
+ end,
+ config = function(_, opts)
+ require("cmp").setup(opts)
+ end,
+ },
+
+ {
+ "numToStr/Comment.nvim",
+ keys = {
+ { "gcc", mode = "n", desc = "Comment toggle current line" },
+ { "gc", mode = { "n", "o" }, desc = "Comment toggle linewise" },
+ { "gc", mode = "x", desc = "Comment toggle linewise (visual)" },
+ { "gbc", mode = "n", desc = "Comment toggle current block" },
+ { "gb", mode = { "n", "o" }, desc = "Comment toggle blockwise" },
+ { "gb", mode = "x", desc = "Comment toggle blockwise (visual)" },
+ },
+ init = function()
+ require("core.utils").load_mappings "comment"
+ end,
+ config = function(_, opts)
+ require("Comment").setup(opts)
+ end,
+ },
+
+ -- file managing , picker etc
+ {
+ "nvim-tree/nvim-tree.lua",
+ cmd = { "NvimTreeToggle", "NvimTreeFocus" },
+ init = function()
+ require("core.utils").load_mappings "nvimtree"
+ end,
+ opts = function()
+ return require "plugins.configs.nvimtree"
+ end,
+ config = function(_, opts)
+ dofile(vim.g.base46_cache .. "nvimtree")
+ require("nvim-tree").setup(opts)
+ end,
+ },
+
+ {
+ "nvim-telescope/telescope.nvim",
+ dependencies = { "nvim-treesitter/nvim-treesitter" },
+ cmd = "Telescope",
+ init = function()
+ require("core.utils").load_mappings "telescope"
+ end,
+ opts = function()
+ return require "plugins.configs.telescope"
+ end,
+ config = function(_, opts)
+ dofile(vim.g.base46_cache .. "telescope")
+ 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",
+ keys = { "<leader>", "<c-r>", "<c-w>", '"', "'", "`", "c", "v", "g" },
+ init = function()
+ require("core.utils").load_mappings "whichkey"
+ end,
+ cmd = "WhichKey",
+ config = function(_, opts)
+ dofile(vim.g.base46_cache .. "whichkey")
+ require("which-key").setup(opts)
+ end,
+ },
+}
+
+local config = require("core.utils").load_config()
+
+if #config.plugins > 0 then
+ table.insert(default_plugins, { import = config.plugins })
+end
+
+require("lazy").setup(default_plugins, config.lazy_nvim)