add support for showing just the path of the folder in the desc, instead of the full path

This commit is contained in:
Diogo Duarte
2024-05-14 10:39:43 +01:00
parent 3907dd910b
commit 06a226ba4a

View File

@@ -35,11 +35,23 @@ end)
local _get_hovered_file = ya.sync(function()
local folder = Folder:by_kind(Folder.CURRENT)
local file_hovered = folder.window[folder.cursor - folder.offset + 1]
if not file_hovered then
return folder.cwd
if not folder.hovered then
return { url = folder.cwd, is_cwd = true }
end
return file_hovered.url
return { url = folder.hovered.url, is_cwd = false }
end)
local _generate_description = ya.sync(function(state, file)
-- if this is true, we don't have information about the folder, so just return the folder url
if file.is_cwd then
return tostring(file.url)
end
if state.desc_format == "parent" then
return tostring(file.url:parent())
end
-- full description
return tostring(file.url)
end)
local _load_state = ya.sync(function(state)
@@ -78,17 +90,19 @@ end)
local _save_last_directory = ya.sync(function(state)
ps.sub("cd", function()
local file_url = _get_hovered_file()
local file = _get_hovered_file()
state.last_dir = state.curr_dir
state.curr_dir = {
on = "'",
desc = tostring(file_url),
desc = _generate_description(file),
path = tostring(file.url),
}
end)
ps.sub("hover", function()
local file_url = _get_hovered_file()
state.curr_dir.desc = tostring(file_url)
local file = _get_hovered_file()
state.curr_dir.desc = _generate_description(file)
state.curr_dir.path = tostring(file.url)
end)
end)
@@ -97,7 +111,7 @@ end)
-- ***********************************************/
local save_bookmark = ya.sync(function(state, idx)
local file_url = _get_hovered_file()
local file = _get_hovered_file()
state.bookmarks = state.bookmarks or {}
@@ -108,7 +122,8 @@ local save_bookmark = ya.sync(function(state, idx)
state.bookmarks[_idx] = {
on = SUPPORTED_KEYS[idx].on,
desc = tostring(file_url),
desc = _generate_description(file),
path = tostring(file.url),
}
if state.persist then
@@ -192,7 +207,7 @@ return {
end
if action == "jump" then
ya.manager_emit("reveal", { bookmarks[selected].desc })
ya.manager_emit("reveal", { bookmarks[selected].path })
elseif action == "delete" then
delete_bookmark(selected)
end
@@ -211,6 +226,12 @@ return {
_load_state()
end
if args.desc_format == "parent" then
state.desc_format = "parent"
else
state.desc_format = "full"
end
state.notify = {
enable = false,
timeout = 1,