summaryrefslogtreecommitdiff
path: root/fedora/.config/yazi/plugins/parent-arrow.yazi/main.lua
blob: a4fd880dfc9d5c4c98ba3b1ee4c8845b46298b44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 }