dotfiles-ansible/roles/nvim/files/nvim/lua/plugins.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