Add custom bookmark description when creating
This commit is contained in:
@@ -66,6 +66,7 @@ require("bookmarks"):setup({
|
||||
persist = "none",
|
||||
desc_format = "full",
|
||||
file_pick_mode = "hover",
|
||||
custom_desc_input = false,
|
||||
notify = {
|
||||
enable = false,
|
||||
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`.
|
||||
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.
|
||||
|
||||
32
main.lua
32
main.lua
@@ -118,11 +118,15 @@ local _save_last_directory = ya.sync(function(state, persist)
|
||||
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 =============**
|
||||
-- ***********************************************
|
||||
|
||||
local save_bookmark = ya.sync(function(state, idx)
|
||||
local save_bookmark = ya.sync(function(state, idx, custom_desc)
|
||||
local file = _get_bookmark_file()
|
||||
|
||||
state.bookmarks = state.bookmarks or {}
|
||||
@@ -132,9 +136,14 @@ local save_bookmark = ya.sync(function(state, idx)
|
||||
_idx = #state.bookmarks + 1
|
||||
end
|
||||
|
||||
local bookmark_desc = tostring(file.url)
|
||||
if custom_desc then
|
||||
bookmark_desc = tostring(custom_desc)
|
||||
end
|
||||
|
||||
state.bookmarks[_idx] = {
|
||||
on = SUPPORTED_KEYS[idx].on,
|
||||
desc = _generate_description(file),
|
||||
desc = bookmark_desc,
|
||||
path = tostring(file.url),
|
||||
is_parent = file.is_parent,
|
||||
}
|
||||
@@ -226,6 +235,21 @@ return {
|
||||
if action == "save" then
|
||||
local key = ya.which { cands = SUPPORTED_KEYS, silent = true }
|
||||
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)
|
||||
end
|
||||
return
|
||||
@@ -279,6 +303,10 @@ return {
|
||||
state.file_pick_mode = "hover"
|
||||
end
|
||||
|
||||
if type(args.custom_desc_input) == "boolean" then
|
||||
state.custom_desc_input = args.custom_desc_input
|
||||
end
|
||||
|
||||
state.notify = {
|
||||
enable = false,
|
||||
timeout = 1,
|
||||
|
||||
Reference in New Issue
Block a user