-- bootstrap 'mini.nvim' manually in a way that it gets managed by 'mini.deps' local mini_path = vim.fn.stdpath("data") .. "/site/pack/deps/start/mini.nvim" if not vim.loop.fs_stat(mini_path) then vim.cmd('echo "Installing `mini.nvim`" | redraw') local clone_cmd = { "git", "clone", "--filter=blob:none", "https://github.com/nvim-mini/mini.nvim", mini_path, } vim.fn.system(clone_cmd) vim.cmd("packadd mini.nvim | helptags ALL") vim.cmd('echo "Installed `mini.nvim`" | redraw') end -- set up 'mini.deps' immediately to have its `now()` and `later()` helpers require("mini.deps").setup() -- define main config table to be able to use it in scripts _G.Config = {} -- dyncamically import lua/plugins/*.lua local path = vim.fn.stdpath("config") .. "/lua/plugins" local plugins = vim.iter(vim.fs.dir(path)) :filter(function(n, t) return t == "file" and n:match("%.lua") end) :map(function(n, _) local s, _ = n:gsub("%.lua$", "") return s end) :totable() -- gather errors so any vim.notify overrides happen local errors = {} for _, p in ipairs(plugins) do local ok, err = pcall(require, "plugins." .. p) if not ok then table.insert(errors, "'" .. p .. ".lua'\n\t" .. err) end end for _, error in ipairs(errors) do vim.notify(error, vim.log.levels.ERROR) end