From 38bbaf267209e0df16e0ba87c8833cc9d8718b0b Mon Sep 17 00:00:00 2001 From: triethyl Date: Thu, 19 Mar 2026 14:19:50 -0400 Subject: neovim: created new pickers --- .../custom-neovim/config/lua/plugins/mini-pick.lua | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'pkgs/custom-neovim/config/lua/plugins') 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 } -- cgit v1.2.3