diff options
Diffstat (limited to 'pkgs/custom-neovim/config/lua/plugins/mini-pick.lua')
| -rw-r--r-- | pkgs/custom-neovim/config/lua/plugins/mini-pick.lua | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/pkgs/custom-neovim/config/lua/plugins/mini-pick.lua b/pkgs/custom-neovim/config/lua/plugins/mini-pick.lua index 68e57ec..6d0b5fa 100644 --- a/pkgs/custom-neovim/config/lua/plugins/mini-pick.lua +++ b/pkgs/custom-neovim/config/lua/plugins/mini-pick.lua @@ -21,5 +21,41 @@ return { require("mini.extra").setup() vim.ui.select = MiniPick.ui_select + + -- Switch to a dir in the zoxide database + MiniPick.registry.zoxide = function() + local zoxide_output = vim.fn.system('zoxide query -l') + local zoxide_dirs = vim.split(zoxide_output, '\n', { trimempty = true }) + MiniPick.start({ + source = { + items = zoxide_dirs, + name = "zoxide", + choose = function(dir) + vim.fn.chdir(dir) + end + } + }) + end + + -- Switch to a subdir of the current dir + MiniPick.registry.cd = function(local_opts) + local scope = local_opts.scope or 'current' + local fd_output = vim.fn.system('fd -t d') + local fd_dirs = vim.split(fd_output, '\n', { trimempty = true }) + MiniPick.start({ + source = { + items = fd_dirs, + name = (scope == 'tab') and "tcd" or "cd", + choose = function (dir) + if (scope == 'tab') then + vim.cmd.tcd(dir) + else + vim.cmd.cd(dir) + end + end + } + }) + end + end } |
