pkg(nixvim): Add lazy-load file to use AutoCmd to load plugin

This commit is contained in:
ulic-youthlic 2025-07-13 06:04:55 +08:00
parent 58b503453b
commit 2b6bc9763d
Signed by: youthlic
GPG key ID: 63E86C3C14A0D721

View file

@ -0,0 +1,38 @@
{...}: {
extraConfigLuaPre =
#lua
''
do
_M.plugins = {}
_M.load = function(name)
_M.plugins = vim.tbl_deep_extend("force", _M.plugins, {
name = {
loaded = true,
},
})
vim.schedule(function()
vim.api.nvim_exec_autocmds("User", { pattern = "LazyLoad", modeline = false, data = name })
end)
end
_M._is_loaded = function(name)
local plugins = _M.plugins
return plugins[name] and plugins[name].loaded
end
_M.on_load = function(name, fn)
if _M._is_loaded(name) then
fn(name)
else
vim.api.nvim_create_autocmd("User", {
pattern = "LazyLoad",
callback = function(event)
if event.data == name then
fn(name)
return true
end
end,
})
end
end
end
'';
}