feat(ui): added custom commands for lazygit and opening a terminal for a plugin

This commit is contained in:
Folke Lemaitre 2022-12-24 11:28:19 +01:00
parent 7d02da2ff0
commit be3909c544
No known key found for this signature in database
GPG Key ID: 41F8B1FBACAE2040
4 changed files with 61 additions and 7 deletions

View File

@ -327,6 +327,31 @@ return {
task = "✔ ", task = "✔ ",
}, },
throttle = 20, -- how frequently should the ui process render events throttle = 20, -- how frequently should the ui process render events
custom_keys = {
-- you can define custom key maps here.
-- To disable one of the defaults, set it to false
-- open lazygit log
["<localleader>l"] = function(plugin)
require("lazy.util").open_cmd({ "lazygit", "log" }, {
cwd = plugin.dir,
terminal = true,
close_on_exit = true,
enter = true,
})
end,
-- open a terminal for the plugin dir
["<localleader>t"] = function(plugin)
require("lazy.util").open_cmd({ vim.go.shell }, {
cwd = plugin.dir,
terminal = true,
close_on_exit = true,
enter = true,
})
end,
},
},
diff = { diff = {
-- diff command <d> can be one of: -- diff command <d> can be one of:
-- * browser: opens the github compare view. Note that this is always mapped to <K> as well, -- * browser: opens the github compare view. Note that this is always mapped to <K> as well,

View File

@ -1,4 +1,4 @@
## ✅ TODO # ✅ TODO
- [x] fancy UI to manage all your Neovim plugins - [x] fancy UI to manage all your Neovim plugins
- [x] auto lazy-loading of lua modules - [x] auto lazy-loading of lua modules
@ -46,6 +46,8 @@
- [ ] document highlight groups - [ ] document highlight groups
- [ ] document user events - [ ] document user events
- [ ] document API, like lazy.plugins()
- [ ] icons
- [x] check in cache if rtp files match - [x] check in cache if rtp files match
- [x] I think the installation section, specifically the loading part, could use an - [x] I think the installation section, specifically the loading part, could use an

View File

@ -50,6 +50,31 @@ M.defaults = {
task = "", task = "",
}, },
throttle = 20, -- how frequently should the ui process render events throttle = 20, -- how frequently should the ui process render events
custom_keys = {
-- you can define custom key maps here.
-- To disable one of the defaults, set it to false
-- open lazygit log
["<localleader>l"] = function(plugin)
require("lazy.util").open_cmd({ "lazygit", "log" }, {
cwd = plugin.dir,
terminal = true,
close_on_exit = true,
enter = true,
})
end,
-- open a terminal for the plugin dir
["<localleader>t"] = function(plugin)
require("lazy.util").open_cmd({ vim.go.shell }, {
cwd = plugin.dir,
terminal = true,
close_on_exit = true,
enter = true,
})
end,
},
},
diff = { diff = {
-- diff command <d> can be one of: -- diff command <d> can be one of:
-- * browser: opens the github compare view. Note that this is always mapped to <K> as well, -- * browser: opens the github compare view. Note that this is always mapped to <K> as well,

View File

@ -96,12 +96,14 @@ function M.create(opts)
end) end)
for key, handler in pairs(Config.options.ui.custom_keys) do for key, handler in pairs(Config.options.ui.custom_keys) do
self:on_key(key, function() if handler then
local plugin = self.render:get_plugin() self:on_key(key, function()
if plugin then local plugin = self.render:get_plugin()
handler(plugin) if plugin then
end handler(plugin)
end) end
end)
end
end end
self:setup_patterns() self:setup_patterns()