mirror of https://github.com/folke/lazy.nvim.git
docs: generate docs for commands
This commit is contained in:
parent
f25f942eb7
commit
1730661ec2
22
README.md
22
README.md
|
@ -277,6 +277,28 @@ return {
|
|||
|
||||
## 🚀 Usage
|
||||
|
||||
You can manage all your plugins with the main `:Lazy` command.
|
||||
Alternatively you can start any operation with a specific command, sub command or API function:
|
||||
|
||||
<!-- commands:start -->
|
||||
|
||||
| Command | Lua | Key Mapping | Description |
|
||||
| --------------------------------- | --------------------------- | ----------- | ------------------------------------------------------ |
|
||||
| `:Lazy home` or `:LazyHome` | `require("lazy").home()` | `<H>` | Go back to plugin list |
|
||||
| `:Lazy install` or `:LazyInstall` | `require("lazy").install()` | `<I>` | Install missing plugins |
|
||||
| `:Lazy update` or `:LazyUpdate` | `require("lazy").update()` | `<U>` | Update all plugins. This will also update the lockfile |
|
||||
| `:Lazy sync` or `:LazySync` | `require("lazy").sync()` | `<S>` | Run install, clean and update |
|
||||
| `:Lazy clean` or `:LazyClean` | `require("lazy").clean()` | `<X>` | Clean plugins that are no longer needed |
|
||||
| `:Lazy check` or `:LazyCheck` | `require("lazy").check()` | `<C>` | Check for updates and show the log (git fetch) |
|
||||
| `:Lazy log` or `:LazyLog` | `require("lazy").log()` | `<L>` | Show recent updates for all plugins |
|
||||
| `:Lazy restore` or `:LazyRestore` | `require("lazy").restore()` | `<R>` | Updates all plugins to the state in the lockfile |
|
||||
| `:Lazy profile` or `:LazyProfile` | `require("lazy").profile()` | `<P>` | Show detailed profiling |
|
||||
| `:Lazy debug` or `:LazyDebug` | `require("lazy").debug()` | `<D>` | Show debug information |
|
||||
| `:Lazy help` or `:LazyHelp` | `require("lazy").help()` | `<?>` | Toggle this help page |
|
||||
| `:Lazy clear` or `:LazyClear` | `require("lazy").clear()` | | Clear finished tasks |
|
||||
|
||||
<!-- commands:end -->
|
||||
|
||||
## 📊 Profiler
|
||||
|
||||
The profiling view shows you why and how long it took to load your plugins.
|
||||
|
|
|
@ -57,7 +57,7 @@ function M.save(contents)
|
|||
if not readme:find(pattern) then
|
||||
error("tag " .. tag .. " not found")
|
||||
end
|
||||
if tag == "toc" then
|
||||
if tag == "toc" or tag == "commands" then
|
||||
readme = readme:gsub(pattern, "%1\n\n" .. content .. "\n\n%2")
|
||||
else
|
||||
readme = readme:gsub(pattern, "%1\n\n```lua\n" .. content .. "\n```\n\n%2")
|
||||
|
@ -73,6 +73,32 @@ function M.extract(file, pattern)
|
|||
return assert(init:match(pattern))
|
||||
end
|
||||
|
||||
function M.commands()
|
||||
local commands = require("lazy.view.commands").commands
|
||||
local modes = require("lazy.view").modes
|
||||
local lines = {
|
||||
{ "Command", "Lua", "Key Mapping", "Description" },
|
||||
{ "---", "---", "---", "---" },
|
||||
}
|
||||
for _, mode in ipairs(modes) do
|
||||
if not mode.plugin and commands[mode.name] then
|
||||
lines[#lines + 1] = {
|
||||
("`:Lazy %s`"):format(mode.name) .. " or " .. ("`:Lazy%s`"):format(
|
||||
mode.name:sub(1, 1):upper() .. mode.name:sub(2)
|
||||
),
|
||||
([[`require("lazy").%s()`]]):format(mode.name),
|
||||
mode.key and ("`<%s>`"):format(mode.key) or "",
|
||||
mode.desc,
|
||||
}
|
||||
end
|
||||
end
|
||||
local ret = {}
|
||||
for _, line in ipairs(lines) do
|
||||
ret[#ret + 1] = "| " .. table.concat(line, " | ") .. " |"
|
||||
end
|
||||
return table.concat(ret, "\n")
|
||||
end
|
||||
|
||||
function M.update()
|
||||
local cache_config = M.extract("lua/lazy/core/cache.lua", "\nM%.config = ({.-\n})")
|
||||
local config = M.extract("lua/lazy/core/config.lua", "\nM%.defaults = ({.-\n})")
|
||||
|
@ -85,6 +111,7 @@ function M.update()
|
|||
bootstrap = M.extract("lua/lazy/init.lua", "function M%.bootstrap%(%)\n(.-)\nend"),
|
||||
config = config,
|
||||
spec = Util.read_file("lua/lazy/example.lua"),
|
||||
commands = M.commands(),
|
||||
})
|
||||
vim.cmd.checktime()
|
||||
end
|
||||
|
|
|
@ -16,6 +16,7 @@ M.modes = {
|
|||
{ name = "profile", key = "P", desc = "Show detailed profiling", toggle = true },
|
||||
{ name = "debug", key = "D", desc = "Show debug information", toggle = true },
|
||||
{ name = "help", key = "?", desc = "Toggle this help page", toggle = true },
|
||||
{ name = "clear", desc = "Clear finished tasks", hide = true },
|
||||
|
||||
{ plugin = true, name = "update", key = "u", desc = "Update this plugin. This will also update the lockfile" },
|
||||
{
|
||||
|
@ -163,21 +164,23 @@ function M.show(mode)
|
|||
})
|
||||
|
||||
for _, m in ipairs(M.modes) do
|
||||
vim.keymap.set("n", m.key, function()
|
||||
local Commands = require("lazy.view.commands")
|
||||
if m.plugin then
|
||||
local plugin = get_plugin()
|
||||
if plugin then
|
||||
Commands.cmd(m.name, { plugin })
|
||||
if m.key then
|
||||
vim.keymap.set("n", m.key, function()
|
||||
local Commands = require("lazy.view.commands")
|
||||
if m.plugin then
|
||||
local plugin = get_plugin()
|
||||
if plugin then
|
||||
Commands.cmd(m.name, { plugin })
|
||||
end
|
||||
else
|
||||
if M.mode == m.name and m.toggle then
|
||||
M.mode = nil
|
||||
return update()
|
||||
end
|
||||
Commands.cmd(m.name)
|
||||
end
|
||||
else
|
||||
if M.mode == m.name and m.toggle then
|
||||
M.mode = nil
|
||||
return update()
|
||||
end
|
||||
Commands.cmd(m.name)
|
||||
end
|
||||
end, { buffer = buf })
|
||||
end, { buffer = buf })
|
||||
end
|
||||
end
|
||||
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
|
|
|
@ -150,8 +150,11 @@ function M:help()
|
|||
for _, mode in ipairs(View.modes) do
|
||||
local title = mode.name:sub(1, 1):upper() .. mode.name:sub(2)
|
||||
self:append("- ", "LazySpecial", { indent = 2 })
|
||||
self:append(title, "Title"):append(" <" .. mode.key .. "> ", "LazyKey")
|
||||
self:append(mode.desc or ""):nl()
|
||||
self:append(title, "Title")
|
||||
if mode.key then
|
||||
self:append(" <" .. mode.key .. ">", "LazyKey")
|
||||
end
|
||||
self:append(" " .. (mode.desc or "")):nl()
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue