diff --git a/lua/plugins/configs/bufferline.lua b/lua/plugins/configs/bufferline.lua index a396ed4..5801823 100644 --- a/lua/plugins/configs/bufferline.lua +++ b/lua/plugins/configs/bufferline.lua @@ -5,7 +5,9 @@ if not present then return end -bufferline.setup { +local M = {} + +local chad_defaults = { options = { offsets = { { filetype = "NvimTree", text = "", padding = 1 } }, buffer_close_icon = "", @@ -135,3 +137,12 @@ bufferline.setup { }, }, } + +M.setup = function(override_flag) + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("bufferline", chad_defaults) + end + bufferline.setup(chad_defaults) +end + +return M diff --git a/lua/plugins/configs/cmp.lua b/lua/plugins/configs/cmp.lua index 80e2df4..a7948de 100644 --- a/lua/plugins/configs/cmp.lua +++ b/lua/plugins/configs/cmp.lua @@ -4,9 +4,11 @@ if not present then return end +local M = {} + vim.opt.completeopt = "menuone,noselect" -cmp.setup { +local chad_defaults = { snippet = { expand = function(args) require("luasnip").lsp_expand(args.body) @@ -64,3 +66,12 @@ cmp.setup { { name = "path" }, }, } + +M.setup = function (override_flag) + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("nvim_cmp", chad_defaults) + end + cmp.setup(chad_defaults) +end + +return M diff --git a/lua/plugins/configs/icons.lua b/lua/plugins/configs/icons.lua index 7f66d3c..255ad5a 100644 --- a/lua/plugins/configs/icons.lua +++ b/lua/plugins/configs/icons.lua @@ -3,9 +3,11 @@ if not present then return end +local M = {} + local colors = require("colors").get() -icons.setup { +local chad_defaults = { override = { c = { icon = "", @@ -142,5 +144,15 @@ icons.setup { color = colors.sun, name = "zip", }, - }, + } } + + +M.setup = function(override_flag) + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("nvim_web_devicons", chad_defaults) + end + icons.setup(chad_defaults) +end + +return M diff --git a/lua/plugins/configs/nvimtree.lua b/lua/plugins/configs/nvimtree.lua index 131f4ad..5399903 100644 --- a/lua/plugins/configs/nvimtree.lua +++ b/lua/plugins/configs/nvimtree.lua @@ -51,7 +51,7 @@ g.nvim_tree_icons = { }, } -nvimtree.setup { +local chad_defaults = { filters = { dotfiles = false, }, @@ -71,3 +71,12 @@ nvimtree.setup { ignore = false, }, } + +M.setup = function (override_flag) + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("nvim_tree", chad_defaults) + end + nvimtree.setup(chad_defaults) +end + +return M diff --git a/lua/plugins/configs/others.lua b/lua/plugins/configs/others.lua index 279d6d4..24cca50 100644 --- a/lua/plugins/configs/others.lua +++ b/lua/plugins/configs/others.lua @@ -2,12 +2,16 @@ local M = {} local chadrc_config = require("core.utils").load_config() -M.autopairs = function() +M.autopairs = function(override_flag) local present1, autopairs = pcall(require, "nvim-autopairs") local present2, cmp_autopairs = pcall(require, "nvim-autopairs.completion.cmp") if present1 and present2 then - autopairs.setup({fast_wrap = {}}) + local chad_defaults = {fast_wrap = {}} + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("nvim_autopairs", chad_defaults) + end + autopairs.setup(chad_defaults) local cmp = require "cmp" cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done()) @@ -21,8 +25,8 @@ M.better_escape = function() } end -M.blankline = function() - require("indent_blankline").setup { +M.blankline = function(override_flag) + local chad_defaults = { indentLine_enabled = 1, char = "▏", filetype_exclude = { @@ -40,52 +44,72 @@ M.blankline = function() show_trailing_blankline_indent = false, show_first_indent_level = false, } + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("indent_blankline", chad_defaults) + end + require("indent_blankline").setup(chad_defaults) end -M.colorizer = function() +M.colorizer = function(override_flag) local present, colorizer = pcall(require, "colorizer") if present then - colorizer.setup({ "*" }, { - RGB = true, -- #RGB hex codes - RRGGBB = true, -- #RRGGBB hex codes - names = false, -- "Name" codes like Blue - RRGGBBAA = false, -- #RRGGBBAA hex codes - rgb_fn = false, -- CSS rgb() and rgba() functions - hsl_fn = false, -- CSS hsl() and hsla() functions - css = false, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB - css_fn = false, -- Enable all CSS *functions*: rgb_fn, hsl_fn + local chad_defaults = { + filetypes = { + "*" + }, + user_default_options = { + RGB = true, -- #RGB hex codes + RRGGBB = true, -- #RRGGBB hex codes + names = false, -- "Name" codes like Blue + RRGGBBAA = false, -- #RRGGBBAA hex codes + rgb_fn = false, -- CSS rgb() and rgba() functions + hsl_fn = false, -- CSS hsl() and hsla() functions + css = false, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB + css_fn = false, -- Enable all CSS *functions*: rgb_fn, hsl_fn - -- Available modes: foreground, background - mode = "background", -- Set the display mode. - }) + -- Available modes: foreground, background + mode = "background", -- Set the display mode. + }, + } + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("nvim_colorizer", chad_defaults) + end + colorizer.setup(chad_defaults["filetypes"], chad_defaults["user_default_options"]) vim.cmd "ColorizerReloadAllBuffers" end end -M.comment = function() +M.comment = function(override_flag) local present, nvim_comment = pcall(require, "Comment") if present then - nvim_comment.setup() + local chad_defaults = {} + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("nvim_comment", chad_defaults) + end + nvim_comment.setup(chad_defaults) end end -M.luasnip = function() +M.luasnip = function(override_flag) local present, luasnip = pcall(require, "luasnip") if present then - luasnip.config.set_config { + local chad_defaults = { history = true, updateevents = "TextChanged,TextChangedI", } - + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("luasnip", chad_defaults) + end + luasnip.config.set_config(chad_defaults) require("luasnip/loaders/from_vscode").load { paths = chadrc_config.plugins.options.luasnip.snippet_path } require("luasnip/loaders/from_vscode").load() end end -M.signature = function() +M.signature = function(override_flag) local present, lspsignature = pcall(require, "lsp_signature") if present then - lspsignature.setup { + local chad_defaults = { bind = true, doc_lines = 0, floating_window = true, @@ -102,6 +126,10 @@ M.signature = function() zindex = 200, -- by default it will be on top of all floating windows, set to 50 send it to bottom padding = "", -- character to pad on left and right of signature can be ' ', or '|' etc } + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("signature", chad_defaults) + end + lspsignature.setup(chad_defaults) end end @@ -145,10 +173,10 @@ M.lsp_handlers = function() end end -M.gitsigns = function() +M.gitsigns = function(override_flag) local present, gitsigns = pcall(require, "gitsigns") if present then - gitsigns.setup { + local chad_defaults = { signs = { add = { hl = "DiffAdd", text = "│", numhl = "GitSignsAddNr" }, change = { hl = "DiffChange", text = "│", numhl = "GitSignsChangeNr" }, @@ -157,6 +185,10 @@ M.gitsigns = function() changedelete = { hl = "DiffChangeDelete", text = "~", numhl = "GitSignsChangeNr" }, }, } + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("gitsigns", chad_defaults) + end + gitsigns.setup(chad_defaults) end end diff --git a/lua/plugins/configs/telescope.lua b/lua/plugins/configs/telescope.lua index 35ee0c9..9b8aece 100644 --- a/lua/plugins/configs/telescope.lua +++ b/lua/plugins/configs/telescope.lua @@ -4,7 +4,9 @@ if not present then return end -telescope.setup { +local M = {} + +local chad_defaults = { defaults = { vimgrep_arguments = { "rg", @@ -53,10 +55,20 @@ telescope.setup { }, } -local extensions = { "themes", "terms" } - -pcall(function() - for _, ext in ipairs(extensions) do - telescope.load_extension(ext) +function M.setup(override_flag) + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("telescope", chad_defaults) end -end) + + telescope.setup(chad_defaults) + + local extensions = { "themes", "terms" } + + pcall(function() + for _, ext in ipairs(extensions) do + telescope.load_extension(ext) + end + end) +end + +return M diff --git a/lua/plugins/configs/treesitter.lua b/lua/plugins/configs/treesitter.lua index 6e65340..f258bbf 100644 --- a/lua/plugins/configs/treesitter.lua +++ b/lua/plugins/configs/treesitter.lua @@ -4,7 +4,9 @@ if not present then return end -ts_config.setup { +local M = {} + +local chad_defaults = { ensure_installed = { "lua", "vim", @@ -14,3 +16,12 @@ ts_config.setup { use_languagetree = true, }, } + +M.setup = function (override_flag) + if override_flag then + chad_defaults = require("core.utils").tbl_override_req("nvim_treesitter", chad_defaults) + end + ts_config.setup(chad_defaults) +end + +return M