rsplug 0.2.4

A blazingly fast Neovim plugin manager written in Rust
-- Auto generated by rsplug
local func2pkgid = { <% for (func, ids) in func2pkgid {%>['<%=func%>']={<% for id in ids { %>'<%=id%>',<%}%>},<%}%> }
local called_autoload_prefix = {}

local function packadd_all(func)
	for _, id in ipairs(func2pkgid[func] or {}) do
		require '_rsplug'.packadd(id)
	end
end

return {
	func_handler = function(func, args)
		pcall(vim.cmd, 'delfunction ' .. func)
		packadd_all(func)
		return vim.fn[func](unpack(args))
	end,
	autoload_handler = function(func)
		local prefix = func:match('^[^#]+') or func
		if called_autoload_prefix[prefix] then return end
		called_autoload_prefix[prefix] = true

		local save_eventignore = vim.o.eventignore
		vim.o.eventignore = 'FuncUndefined'
		local ok, err = pcall(packadd_all, func)
		vim.o.eventignore = save_eventignore
		if not ok then error(err) end
	end,
}