diff options
Diffstat (limited to 'fedora/.config/yazi/plugins/parent-arrow.yazi/main.lua')
| -rw-r--r-- | fedora/.config/yazi/plugins/parent-arrow.yazi/main.lua | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/fedora/.config/yazi/plugins/parent-arrow.yazi/main.lua b/fedora/.config/yazi/plugins/parent-arrow.yazi/main.lua new file mode 100644 index 0000000..a4fd880 --- /dev/null +++ b/fedora/.config/yazi/plugins/parent-arrow.yazi/main.lua @@ -0,0 +1,24 @@ +--- @sync entry +local function entry(_, job) + local parent = cx.active.parent + if not parent then + return + end + + local offset = tonumber(job.args[1]) + if not offset then + return ya.err(job.args[1], "is not a number") + end + + local start = parent.cursor + 1 + offset + local end_ = offset < 0 and 1 or #parent.files + local step = offset < 0 and -1 or 1 + for i = start, end_, step do + local target = parent.files[i] + if target and target.cha.is_dir then + return ya.emit("cd", { target.url }) + end + end +end + +return { entry = entry } |
