Skip to content

Commit 2080694

Browse files
committed
feat: load plugin on cmd complete and make completion just work
1 parent 4df73f1 commit 2080694

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

lua/lazy/core/loader.lua

+17-5
Original file line numberDiff line numberDiff line change
@@ -110,23 +110,35 @@ function M.setup()
110110
-- commands
111111
Util.track("loader_commands")
112112
for cmd, plugins in pairs(M.loaders.cmd or {}) do
113-
vim.api.nvim_create_user_command(cmd, function(event)
113+
local function _load(complete)
114114
vim.api.nvim_del_user_command(cmd)
115-
Util.track("cmd: " .. cmd)
116-
M.load(plugins)
115+
if complete then
116+
Util.track("cmd-complete: " .. cmd)
117+
else
118+
Util.track("cmd: " .. cmd)
119+
end
120+
M.load(plugins, { cmd = cmd })
121+
Util.track()
122+
end
123+
vim.api.nvim_create_user_command(cmd, function(event)
124+
_load()
117125
vim.cmd(
118126
("%s %s%s%s %s"):format(
119127
event.mods or "",
120128
event.line1 == event.line2 and "" or event.line1 .. "," .. event.line2,
121129
cmd,
122130
event.bang and "!" or "",
123-
event.args
131+
event.args or ""
124132
)
125133
)
126-
Util.track()
127134
end, {
128135
bang = true,
129136
nargs = "*",
137+
complete = function()
138+
_load(true)
139+
-- HACK: trick Neovim to show the newly loaded command completion
140+
vim.api.nvim_input("<space><bs><tab>")
141+
end,
130142
})
131143
end
132144
Util.track()

0 commit comments

Comments
 (0)