rsplug 0.2.3

A blazingly fast Neovim plugin manager written in Rust
-- Auto generated by rsplug
local loaded = {}
return {
	---@param pkgids string[]
	---@param ft string
	load = function(pkgids, ft)
		local ids = vim.tbl_filter(
			function(item)
				if loaded[item] then return false end
				loaded[item] = true
				return true
			end, pkgids)
		if #ids == 0 then return end

		local events = { 'Syntax', 'BufEnter', 'BufWinEnter' }
		local autocmds = vim.api.nvim_get_autocmds { event = events }
		local ftplugins = require '_rsplug'.get_ft_runtime_file(ft)

		for _, id in ipairs(ids) do
			require '_rsplug'.packadd(id)
		end

		ftplugins = vim.tbl_filter(function(f) return not vim.list_contains(ftplugins, f) end,
			require '_rsplug'.get_ft_runtime_file(ft))
		for _, f in ipairs(ftplugins) do vim.cmd.source(f) end

		autocmds = require '_rsplug'.get_new_autocmds(vim.api.nvim_get_autocmds { event = events }, autocmds)
		autocmds = vim.tbl_map(function(value) return value.event end, autocmds)
		events = vim.tbl_filter(function(e) return vim.list_contains(autocmds, e) end, events)
		vim.api.nvim_exec_autocmds(events, { modeline = false })
	end,
}