Skip to content

Commit

Permalink
feat: lazy commands
Browse files Browse the repository at this point in the history
  • Loading branch information
folke committed Nov 20, 2022
1 parent a87982f commit ae0b871
Showing 1 changed file with 68 additions and 0 deletions.
68 changes: 68 additions & 0 deletions lua/lazy/view/commands.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
local View = require("lazy.view")
local Manager = require("lazy.manager")

local M = {}

---@param cmd string
function M.cmd(cmd)
cmd = cmd == "" and "show" or cmd
local command = M.commands[cmd]
if command == nil then
Util.error("Invalid lazy command '" .. cmd .. "'")
else
command()
end
end

M.commands = {
clean = function()
Manager.clean({ clear = true, show = true })
end,
install = function()
Manager.install({ clear = true, show = true })
end,
show = function()
View.show()
end,
sync = function()
Manager.update({ clear = true, show = true })
Manager.install({ show = true })
Manager.clean({ show = true })
end,
update = function()
Manager.update({ clear = true, show = true })
end,
}

function M.setup()
vim.api.nvim_create_user_command("Lazy", function(args)
M.cmd(vim.trim(args.args or ""))
end, {
nargs = "?",
desc = "Lazy",
complete = function(_, line)
if line:match("^%s*Lazy %w+ ") then
return {}
end

local prefix = line:match("^%s*Lazy (%w*)") or ""

---@param key string
return vim.tbl_filter(function(key)
return key:find(prefix) == 1
end, vim.tbl_keys(M.commands))
end,
})

for name in pairs(M.commands) do
local cmd = "Lazy" .. name:sub(1, 1):upper() .. name:sub(2)

vim.api.nvim_create_user_command(cmd, function()
M.cmd(name)
end, {
desc = "Lazy " .. name,
})
end
end

return M

0 comments on commit ae0b871

Please sign in to comment.