Add custom bookmark description when creating

This commit is contained in:
Linhart Lukáš
2025-02-14 11:21:40 +01:00
parent fe0b1de939
commit 2fc6a0a938
2 changed files with 37 additions and 2 deletions

View File

@@ -66,6 +66,7 @@ require("bookmarks"):setup({
persist = "none", persist = "none",
desc_format = "full", desc_format = "full",
file_pick_mode = "hover", file_pick_mode = "hover",
custom_desc_input = false,
notify = { notify = {
enable = false, enable = false,
timeout = 1, timeout = 1,
@@ -129,3 +130,9 @@ By default the notification has a 1 second timeout that can be changed with `not
Furthermore, you can customize the notification messages with `notify.message`. Furthermore, you can customize the notification messages with `notify.message`.
For the `new` and `delete` messages, the `<key>` and `<folder>` keywords can be used, which will be replaced by the respective new/deleted bookmark's associated key and folder. For the `new` and `delete` messages, the `<key>` and `<folder>` keywords can be used, which will be replaced by the respective new/deleted bookmark's associated key and folder.
### `custom_desc_input`
When enabled, user can change description for new bookmark before it is saved.
By default the custom description input is filled with path.

View File

@@ -118,11 +118,15 @@ local _save_last_directory = ya.sync(function(state, persist)
end) end)
end) end)
local _is_custom_desc_input_enabled = ya.sync(function(state, persist)
return state.custom_desc_input
end)
-- *********************************************** -- ***********************************************
-- **============= C O M M A N D S =============** -- **============= C O M M A N D S =============**
-- *********************************************** -- ***********************************************
local save_bookmark = ya.sync(function(state, idx) local save_bookmark = ya.sync(function(state, idx, custom_desc)
local file = _get_bookmark_file() local file = _get_bookmark_file()
state.bookmarks = state.bookmarks or {} state.bookmarks = state.bookmarks or {}
@@ -131,10 +135,15 @@ local save_bookmark = ya.sync(function(state, idx)
if not _idx then if not _idx then
_idx = #state.bookmarks + 1 _idx = #state.bookmarks + 1
end end
local bookmark_desc = tostring(file.url)
if custom_desc then
bookmark_desc = tostring(custom_desc)
end
state.bookmarks[_idx] = { state.bookmarks[_idx] = {
on = SUPPORTED_KEYS[idx].on, on = SUPPORTED_KEYS[idx].on,
desc = _generate_description(file), desc = bookmark_desc,
path = tostring(file.url), path = tostring(file.url),
is_parent = file.is_parent, is_parent = file.is_parent,
} }
@@ -226,6 +235,21 @@ return {
if action == "save" then if action == "save" then
local key = ya.which { cands = SUPPORTED_KEYS, silent = true } local key = ya.which { cands = SUPPORTED_KEYS, silent = true }
if key then if key then
if _is_custom_desc_input_enabled() then
local file = _get_bookmark_file()
local value, event = ya.input {
title = "Save with custom description:",
position = { "top-center", y = 3, w = 60 },
value = tostring(file.url)
}
if event ~= 1 then
return
end
save_bookmark(key, value)
return
end
save_bookmark(key) save_bookmark(key)
end end
return return
@@ -279,6 +303,10 @@ return {
state.file_pick_mode = "hover" state.file_pick_mode = "hover"
end end
if type(args.custom_desc_input) == "boolean" then
state.custom_desc_input = args.custom_desc_input
end
state.notify = { state.notify = {
enable = false, enable = false,
timeout = 1, timeout = 1,