From be04fab42e16612c534372901eecb3eccb9b46ba Mon Sep 17 00:00:00 2001 From: robin Date: Fri, 12 Dec 2025 10:08:54 +0100 Subject: [PATCH] fix(picker): create `Picker:accept()` and `Picker:cancel()` --- lua/artio/picker.lua | 8 ++++++++ lua/artio/utils.lua | 10 +++++----- plugin/artio.lua | 4 ++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lua/artio/picker.lua b/lua/artio/picker.lua index a50b9e9..c92df59 100644 --- a/lua/artio/picker.lua +++ b/lua/artio/picker.lua @@ -164,6 +164,14 @@ function Picker:delkeymaps() end) end +function Picker:accept() + coroutine.resume(self.co, action_enum.accept) +end + +function Picker:cancel() + coroutine.resume(self.co, action_enum.cancel) +end + function Picker:fix() self.idx = math.max(self.idx, self.opts.preselect and 1 or 0) self.idx = math.min(self.idx, #self.matches) diff --git a/lua/artio/utils.lua b/lua/artio/utils.lua index df5c60b..7498211 100644 --- a/lua/artio/utils.lua +++ b/lua/artio/utils.lua @@ -42,7 +42,7 @@ function utils.make_setqflist(fn) return qfitem end) :totable()) - coroutine.resume(self.co, 1) + self:cancel() end, function(_) vim.cmd.copen() end) @@ -60,7 +60,7 @@ function utils.make_setqflistmark(fn) return qfitem end) :totable()) - coroutine.resume(self.co, 1) + self:cancel() end, function(_) vim.cmd.copen() end) @@ -80,7 +80,7 @@ end function utils.make_fileactions(fn) return { split = require("artio").wrap(function(self) - coroutine.resume(self.co, 1) + self:cancel() end, function(self) local item = self:getcurrent() if not item then @@ -90,7 +90,7 @@ function utils.make_fileactions(fn) vim.api.nvim_open_win(buf, true, { win = -1, vertical = false }) end), vsplit = require("artio").wrap(function(self) - coroutine.resume(self.co, 1) + self:cancel() end, function(self) local item = self:getcurrent() if not item then @@ -100,7 +100,7 @@ function utils.make_fileactions(fn) vim.api.nvim_open_win(buf, true, { win = -1, vertical = true }) end), tabnew = require("artio").wrap(function(self) - coroutine.resume(self.co, 1) + self:cancel() end, function(self) local item = self:getcurrent() if not item then diff --git a/plugin/artio.lua b/plugin/artio.lua index 8f3a6ac..c1b34d9 100644 --- a/plugin/artio.lua +++ b/plugin/artio.lua @@ -96,14 +96,14 @@ vim.keymap.set( "i", "(artio-action-accept)", wrap(function(self) - coroutine.resume(self.co, 0) + self:accept() end) ) vim.keymap.set( "i", "(artio-action-cancel)", wrap(function(self) - coroutine.resume(self.co, 1) + self:cancel() end) ) vim.keymap.set( -- 2.51.2