43 lines
1.2 KiB
Lua
43 lines
1.2 KiB
Lua
-- TODO: rust-tools.nvim, crates.nvim, go.nvim, clojure-vim/*, nvim-comment-frame,
|
|
-- nvim-revJ.lua, nvim-remote-containers, tex.nvim, telescope-dap.nvim, fcitx.nvim,
|
|
-- pandoc.nvim, qf_helper.nvim, tldr.nvim
|
|
local M = {}
|
|
local packer = require('modules.core.pack')
|
|
local modules_dir = vim.fn.stdpath('config') .. '/lua/modules'
|
|
|
|
local function get_plugins_list()
|
|
local list = {}
|
|
local tmp = vim.split(vim.fn.globpath(modules_dir, '*/plugins.lua'), '\n')
|
|
for _, f in ipairs(tmp) do
|
|
list[#list + 1] = f:sub(#modules_dir - 6, -1)
|
|
end
|
|
return list
|
|
end
|
|
|
|
function M.load_plugins()
|
|
local repos = {}
|
|
|
|
-- Merge all plugins' definitions into a table
|
|
local plugins_file = get_plugins_list()
|
|
for _, m in ipairs(plugins_file) do
|
|
local local_repos = require(m:sub(0, #m - 4))
|
|
for repo, conf in pairs(local_repos) do
|
|
repos[#repos + 1] = vim.tbl_extend('force', {repo}, conf)
|
|
end
|
|
end
|
|
|
|
-- This is recommended when using `luafile <afile>` a lot
|
|
packer.reset()
|
|
|
|
-- Configure plugins
|
|
packer.startup(function(use)
|
|
for _, repo in ipairs(repos) do
|
|
use(repo)
|
|
end
|
|
end)
|
|
|
|
-- Install plugins if missing
|
|
packer.install()
|
|
end
|
|
|
|
return M
|