-- Auto generated by rsplug
local cmd2pkgid = { <% for (cmd, ids) in cmd2pkgid {%>['<%=cmd%>']={<% for id in ids { %>'<%=id%>',<%}%>},<%}%> }
return {
---@param args vim.api.keyset.create_user_command.command_args
cmd_handler = function(cmd, args)
vim.api.nvim_del_user_command(cmd)
for _,id in ipairs(cmd2pkgid[cmd] or {}) do
require '_rsplug'.packadd(id)
end
local range
if args.line1 == args.line2 then
range = ''
elseif args.line1 == vim.fn.line "'<" and args.line2 == vim.fn.line "'>" then
range = "'<,'>"
else
range = string.format('%d,%d', args.line1, args.line2)
end
local cmdline = cmd .. (args.bang and '! ' or ' ') .. args.args
---@diagnostic disable-next-line: param-type-mismatch
local ok, err = pcall(vim.cmd, cmdline)
if not ok and tostring(err):match '^E481:' then
vim.cmd(range .. cmdline)
end
end,
dummy_complete = function(cmd, arglead, ...)
vim.api.nvim_del_user_command(cmd)
for _,id in ipairs(cmd2pkgid[cmd] or {}) do
require '_rsplug'.packadd(id)
end
local cmdinfo = (vim.api.nvim_get_commands { builtin = false } or {})[cmd]
local list = { arglead }
if cmdinfo and cmdinfo.complete_arg then
if cmdinfo.complete == 'custom' then
list = vim.fn.split(vim.fn[cmdinfo.complete_arg](arglead, ...), '\n')
elseif cmdinfo.complete == 'customlist' then
list = vim.fn[cmdinfo.complete_arg](arglead, ...)
end
end
return list
end,
}