feat(picker): when picker was started from insert mode, return to insert after paste

This commit is contained in:
Folke Lemaitre 2025-11-05 14:01:10 +01:00
parent b49d11c28a
commit a4176301e3
No known key found for this signature in database
GPG key ID: 9B52594D560070AB
2 changed files with 7 additions and 0 deletions

View file

@ -585,6 +585,11 @@ function M.paste(picker, item, action)
if item then
local value = item[action.field] or item.data or item.text
vim.api.nvim_paste(value, true, -1)
if picker.input.mode == "i" then
vim.schedule(function()
vim.cmd.startinsert({ bang = true })
end)
end
end
end
M.put = M.paste

View file

@ -1,5 +1,6 @@
---@class snacks.picker.input
---@field win snacks.win
---@field mode? string
---@field totals string
---@field picker snacks.Picker
---@field filter snacks.picker.Filter
@ -15,6 +16,7 @@ function M.new(picker)
self.totals = ""
self.picker = picker
self.filter = require("snacks.picker.core.filter").new(picker)
self.mode = vim.fn.mode()
picker.matcher:init(self.filter.pattern)
self.win = Snacks.win(Snacks.win.resolve(picker.opts.win.input, {