From 5dc4695e98425e5c0ff5d26e0bf676977a5e0941 Mon Sep 17 00:00:00 2001 From: sxyazi Date: Mon, 12 May 2025 11:08:33 +0800 Subject: [PATCH] .. --- yazi-plugin/preset/plugins/fzf.lua | 34 +++++++++++++-------------- yazi-plugin/preset/plugins/magick.lua | 6 ++--- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/yazi-plugin/preset/plugins/fzf.lua b/yazi-plugin/preset/plugins/fzf.lua index 55a6234d..09aa60da 100644 --- a/yazi-plugin/preset/plugins/fzf.lua +++ b/yazi-plugin/preset/plugins/fzf.lua @@ -8,13 +8,20 @@ local state = ya.sync(function() return cx.active.current.cwd, selected end) -function M:entry(job) +function M:setup(tbl) + tbl = tbl or {} + if tbl.opts then + self.opts = table.concat(tbl.opts, " ") + end +end + +function M:entry() ya.emit("escape", { visual = true }) local _permit = ya.hide() local cwd, selected = state() - local output, err = M.run_with(cwd, selected, job) + local output, err = self:run_with(cwd, selected) if not output then return ya.notify { title = "Fzf", content = tostring(err), timeout = 5, level = "error" } end @@ -29,25 +36,18 @@ function M:entry(job) end end -function M.run_with(cwd, selected, job) - local args = { "-m" } - - for cmd, option in pairs(job.args) do - local c = cmd:gsub("_", "-") - if type(option) == "boolean" then - table.insert(args, "--" .. c) - else - table.insert(args, "--" .. c .. "=" .. option) - end - end - - local child, err = Command("fzf") - :args(args) +function M:run_with(cwd, selected) + local cmd = Command("fzf") + :arg("-m") :cwd(tostring(cwd)) :stdin(#selected > 0 and Command.PIPED or Command.INHERIT) :stdout(Command.PIPED) - :spawn() + if self.opts then + cmd:env("FZF_DEFAULT_OPTS", self.opts) + end + + local child, err = cmd:spawn() if not child then return nil, Err("Failed to start `fzf`, error: %s", err) end diff --git a/yazi-plugin/preset/plugins/magick.lua b/yazi-plugin/preset/plugins/magick.lua index 365d42d6..291f1eb9 100644 --- a/yazi-plugin/preset/plugins/magick.lua +++ b/yazi-plugin/preset/plugins/magick.lua @@ -50,13 +50,13 @@ function M:spot(job) require("file"):spot(job) end function M.with_limit() local cmd = Command("magick"):args { "-limit", "thread", 1 } if rt.tasks.image_alloc > 0 then - cmd = cmd:args({ "-limit", "memory", rt.tasks.image_alloc }):args { "-limit", "disk", "1MiB" } + cmd:args({ "-limit", "memory", rt.tasks.image_alloc }):args { "-limit", "disk", "1MiB" } end if rt.tasks.image_bound[1] > 0 then - cmd = cmd:args { "-limit", "width", rt.tasks.image_bound[1] } + cmd:args { "-limit", "width", rt.tasks.image_bound[1] } end if rt.tasks.image_bound[2] > 0 then - cmd = cmd:args { "-limit", "height", rt.tasks.image_bound[2] } + cmd:args { "-limit", "height", rt.tasks.image_bound[2] } end return cmd end