diff options
| author | triethyl <triethylammonium@pm.me> | 2026-03-19 14:19:50 -0400 |
|---|---|---|
| committer | triethyl <triethylammonium@pm.me> | 2026-03-19 14:19:50 -0400 |
| commit | 38bbaf267209e0df16e0ba87c8833cc9d8718b0b (patch) | |
| tree | 45a3b9a49beb03c56722ed0ac41e1a41c748ba0d /pkgs/custom-neovim/config/lua/plugins | |
| parent | 26f9b43fec441b1c17a44daab12db1b20f57254b (diff) | |
neovim: created new pickers
Diffstat (limited to 'pkgs/custom-neovim/config/lua/plugins')
| -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 } |
