sloth-flake.nvim/lua/sloth-flake/init.lua

81 lines
1.2 KiB
Lua

local deps = require 'sloth-flake.deps'
local priv = {
is_loaded = {}
}
local M = {}
function M.get(name)
return deps[name]
end
function M.init_all()
for k, v in pairs(deps) do
M.init(k)
end
end
function M.config_all()
for k, v in pairs(deps) do
M.config(k)
end
end
function M.init(name)
local dep = M.get(name)
if name == nil then
-- TODO Report error ?
elseif dep.init ~= nil then
dep.init()
end
end
function M.load(name)
if name == nil then
-- TODO Report error ?
elseif M.is_loaded(name) then
-- TODO Nothing todo
else
-- TODO Laod dynamic plugin
priv.is_loaded[name] = true
end
end
function M.config(name)
local dep = M.get(name)
if name == nil then
-- TODO Report error ?
elseif dep.config ~= nil then
dep.config()
end
end
function M.get_dep_names()
local ret = {}
for k, v in pairs(deps) do
ret[#ret + 1] = v.name
end
return ret
end
function M.load_all()
for k, _v in pairs(deps) do
M.load(k)
end
end
function M.is_loaded(name)
return priv.is_loaded[name] or false
end
function M.setup(config)
local post_init = config.post_init or function() end
M.init_all()
post_init()
M.load_all()
M.config_all()
end
return M