feat: introduce new Sloth command with list subcommand
Only have a "list" subcommand for now. The list can be filtered with "all", "loaded", "notloaded"main
parent
3864d3b9b9
commit
edab526dd0
23
README.md
23
README.md
|
|
@ -16,6 +16,8 @@ A [neovim] plugin and configuration management plugin, highly inspired by [lazy]
|
||||||
- [neovim (lua)](#neovim-lua)
|
- [neovim (lua)](#neovim-lua)
|
||||||
- [Using default `init.lua`](#using-default-initlua)
|
- [Using default `init.lua`](#using-default-initlua)
|
||||||
- [Using your own `init.lua`](#using-your-own-initlua)
|
- [Using your own `init.lua`](#using-your-own-initlua)
|
||||||
|
- [`:Sloth` command](#sloth-command)
|
||||||
|
- [`list` subcommand](#list-subcommand)
|
||||||
- [API](#api)
|
- [API](#api)
|
||||||
|
|
||||||
<!-- TOC -->
|
<!-- TOC -->
|
||||||
|
|
@ -200,6 +202,27 @@ sloth_flake.setup {
|
||||||
-- From here, your plugins are loaded and their optional `config` function called
|
-- From here, your plugins are loaded and their optional `config` function called
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### `:Sloth` command
|
||||||
|
|
||||||
|
`sloth-flake` give a `Sloth` command that you can call to gather some
|
||||||
|
informations about your plugins.
|
||||||
|
|
||||||
|
```vim
|
||||||
|
Sloth [command] [args...]
|
||||||
|
```
|
||||||
|
|
||||||
|
If no arguments are given, the `Sloth` command will call the `list` subcommand.
|
||||||
|
|
||||||
|
##### `list` subcommand
|
||||||
|
|
||||||
|
```vim
|
||||||
|
Sloth list [filter]
|
||||||
|
```
|
||||||
|
- `filter`: filter the list of plugins.
|
||||||
|
- `"all"`: list all declared plugins. Same as if no filter is given.
|
||||||
|
- `"loaded"`: list only loaded plugins.
|
||||||
|
- `"notloaded"`: list only not loaded plugins.
|
||||||
|
|
||||||
#### API
|
#### API
|
||||||
|
|
||||||
The lua API is not really defined yet. This documentation will be completed then.
|
The lua API is not really defined yet. This documentation will be completed then.
|
||||||
|
|
|
||||||
|
|
@ -182,6 +182,65 @@ function unshim_plugin(name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function name_compare(a, b)
|
||||||
|
if a < b then
|
||||||
|
return -1
|
||||||
|
elseif a > b then
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function vim_error(...)
|
||||||
|
vim.api.nvim_err_writeln(string.format(...))
|
||||||
|
end
|
||||||
|
|
||||||
|
local commands = {
|
||||||
|
list = function(args)
|
||||||
|
local filter = args[1] or "all"
|
||||||
|
local deps = vim.iter(M.dep_names())
|
||||||
|
if filter == "all" then
|
||||||
|
-- Nothing to do
|
||||||
|
elseif filter == "loaded" then
|
||||||
|
deps = deps:filter(function (dep)
|
||||||
|
return M.is_loaded(dep)
|
||||||
|
end)
|
||||||
|
elseif filter == "notloaded" then
|
||||||
|
deps = deps:filter(function (dep)
|
||||||
|
return not M.is_loaded(dep)
|
||||||
|
end)
|
||||||
|
else
|
||||||
|
vim_error([[No Sloth list filter "%s".]], cmd)
|
||||||
|
vim_error("Filters are: all, loaded, notloaded")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
deps = deps:totable()
|
||||||
|
table.sort(deps, dep_name_compare)
|
||||||
|
for _, dep in ipairs(deps) do
|
||||||
|
print(string.format("- %s", dep))
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
function sloth_cmd(param)
|
||||||
|
local args = param.fargs
|
||||||
|
local cmd = args[1] or "list";
|
||||||
|
table.remove(args, 1)
|
||||||
|
local fn = commands[cmd]
|
||||||
|
if fn then
|
||||||
|
fn(args)
|
||||||
|
else
|
||||||
|
vim.api.nvim_err_writeln(string.format([[No Sloth subcommand "%s"]], cmd))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function register_command()
|
||||||
|
vim.api.nvim_create_user_command('Sloth', sloth_cmd, {
|
||||||
|
nargs = '*',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
function M.setup(config)
|
function M.setup(config)
|
||||||
if priv.setup_called then
|
if priv.setup_called then
|
||||||
return
|
return
|
||||||
|
|
@ -199,6 +258,8 @@ function M.setup(config)
|
||||||
for _, dep in ipairs(lazy_deps) do
|
for _, dep in ipairs(lazy_deps) do
|
||||||
shim_plugin(dep)
|
shim_plugin(dep)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
register_command()
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue