fix(picker): go back to last window on cancel instead of main

This commit is contained in:
Folke Lemaitre 2025-02-20 06:24:05 +01:00
parent 4f8b9ebf71
commit 4551f499c7
No known key found for this signature in database
GPG key ID: 41F8B1FBACAE2040
2 changed files with 12 additions and 5 deletions

View file

@ -150,7 +150,14 @@ function M.close(picker)
end)
end
M.cancel = "close"
function M.cancel(picker)
picker:norm(function()
local main = require("snacks.picker.core.main").new({ float = false, file = false })
vim.api.nvim_set_current_win(main:get())
picker:close()
end)
end
M.confirm = M.jump -- default confirm action
M.split = { action = "confirm", cmd = "split" }

View file

@ -203,11 +203,11 @@ local defaults = {
["/"] = "toggle_focus",
["<C-Down>"] = { "history_forward", mode = { "i", "n" } },
["<C-Up>"] = { "history_back", mode = { "i", "n" } },
["<C-c>"] = { "close", mode = "i" },
["<C-c>"] = { "cancel", mode = "i" },
["<C-w>"] = { "<c-s-w>", mode = { "i" }, expr = true, desc = "delete word" },
["<CR>"] = { "confirm", mode = { "n", "i" } },
["<Down>"] = { "list_down", mode = { "i", "n" } },
["<Esc>"] = "close",
["<Esc>"] = "cancel",
["<S-CR>"] = { { "pick_win", "jump" }, mode = { "n", "i" } },
["<S-Tab>"] = { "select_and_prev", mode = { "i", "n" } },
["<Tab>"] = { "select_and_next", mode = { "i", "n" } },
@ -255,7 +255,7 @@ local defaults = {
["<2-LeftMouse>"] = "confirm",
["<CR>"] = "confirm",
["<Down>"] = "list_down",
["<Esc>"] = "close",
["<Esc>"] = "cancel",
["<S-CR>"] = { { "pick_win", "jump" } },
["<S-Tab>"] = { "select_and_prev", mode = { "n", "x" } },
["<Tab>"] = { "select_and_next", mode = { "n", "x" } },
@ -303,7 +303,7 @@ local defaults = {
-- preview window
preview = {
keys = {
["<Esc>"] = "close",
["<Esc>"] = "cancel",
["q"] = "close",
["i"] = "focus_input",
["<ScrollWheelDown>"] = "list_scroll_wheel_down",