Available functions.
function | desc |
---|---|
setup(config) |
set config |
mark(bufnr?, lnum?, id?, desc?) |
mark line |
unmark(bufnr?, lnum?) |
unmark line |
is_marked(bufnr?, lnum?) |
check if this line is marked |
toggle(bufnr?, lnum?) |
mark/unmark line |
store(path) |
store marks |
restore(path) |
restore marks |
remove() |
remove all marks |
edit(bufnr?, lnum?, desc?) |
edit mark |
search(opts?) |
search marks |
jump_to_next() |
jump to next mark in this buffer |
jump_to_prev() |
jump to previous mark in this buffer |
Remember to call setup
before use.
You may need a session plugin for storing/restoring marks. Check niuiic/multiple-session.nvim.
If there is no highlight on your telescope preview window, try to set filetype.
vim.filetype.add({
extension = {
ts = "typescript",
},
})
Default config.
require("track").setup({
sign = {
text = "",
text_color = "#00ff00",
priority = 10,
},
search = {
---@param mark track.Mark
entry_label = function(mark)
return string.format("[%s] %s | %s:%s", mark.id, mark.desc, mark.file, mark.lnum)
end,
---@param marks track.Mark[]
---@return track.Mark[]
sort_entry = function(marks)
return require("core").lua.list.sort(marks, function(prev, cur)
return prev.id < cur.id
end)
end,
},
})
Keymap example.
local keys = {
{
"mm",
function()
require("track").toggle()
end,
desc = "toggle mark",
},
{
"mc",
function()
require("track").remove()
end,
desc = "remove all marks",
},
{
"mj",
function()
require("track").jump_to_next()
end,
desc = "jump to next mark",
},
{
"mk",
function()
require("track").jump_to_prev()
end,
desc = "jump to prev mark",
},
{
"me",
function()
require("track").edit()
end,
desc = "edit mark",
},
{
"<space>om",
function()
require("track").search()
end,
desc = "search marks",
},
}