v0.2.0 breaking change: add visited_at to Bookmark structure
You only need one shortcut to add bookmarks.
-- with lazy.nvim
return {
"LintaoAmons/bookmarks.nvim",
dependencies = {
{"stevearc/dressing.nvim"} -- optional: to have the same UI shown in the GIF
}
}
Right now we have only one config options
return { "LintaoAmons/bookmarks.nvim",
config = function ()
require("bookmarks").setup( {
json_db_path = vim.fs.normalize(vim.fn.stdpath("config") .. "/bookmarks.db.json"),
signs = {
mark = { icon = "", color = "grey" },
},
})
end
}
There's two concepts in this plugin: BookmarkList
and Bookmark
. You can look into the code to find the structure of those two domain objects
Command | Description |
---|---|
BookmarksMark |
Mark current line into active BookmarkList. |
BookmarksGoto |
Go to bookmark at current active BookmarkList |
BookmarksCommands |
Find and trigger a bookmark command. |
BookmarksGotoRecent |
Go to latest visited/created Bookmark |
Command | Description |
---|---|
[List] new | create a new BookmarkList and set it to active and mark current line into this BookmarkList |
[List] rename | rename a BookmarkList |
[List] delete | delete a bookmark list |
[List] set active | set a BookmarkList as active |
[List] Browsing all lists | |
[Mark] mark to list | bookmark current line and add it to specific bookmark list |
[Mark] rename bookmark | rename selected bookmark |
[Mark] Browsing all marks | |
[Mark] delete bookmark | delete selected bookmarks |
This plugin don't provide any default keybinding. I recommend you to have those three keybindings.
vim.keymap.set({ "n", "v" }, "mm", "<cmd>BookmarksMark<cr>", { desc = "Mark current line into active BookmarkList." })
vim.keymap.set({ "n", "v" }, "mo", "<cmd>BookmarksGoto<cr>", { desc = "Go to bookmark at current active BookmarkList" })
vim.keymap.set({ "n", "v" }, "ma", "<cmd>BookmarksCommands<cr>", { desc = "Find and trigger a bookmark command." })
vim.keymap.set({ "n", "v" }, "mg", "<cmd>BookmarksGotoRecent<cr>", { desc = "Go to latest visited/created Bookmark" })
Don't hesitate to ask me anything about the codebase if you want to contribute.
You can contact with me by drop me an email or telegram
!
considered as command.!newlist [listname]
bookmark current line into a newly created bookmark list and set the list as current active list.BookmarkCommands
commands picker, a picker allow user to trigger any bookmark command.