feat(file-token): add file: inline metadata token with gf navigation
Problem: there was no way to link a task to a specific location in a source file, or to quickly jump from a task to the relevant code. Solution: add a file:<path>:<line> inline token that stores a relative file reference in task._extra.file. Virtual text renders basename:line in a new PendingFile highlight group. A buffer-local gf mapping (configurable via keymaps.goto_file) opens the file at the given line. M.add_here() lets users attach the current cursor position to any task via vim.ui.select(). M.edit() gains -file support to clear the reference. <Plug>(pending-goto-file) and <Plug>(pending-add-here) are exposed for custom mappings.
This commit is contained in:
parent
3da23c924a
commit
7835dc4687
9 changed files with 257 additions and 9 deletions
|
|
@ -12,11 +12,13 @@ local function edit_field_candidates()
|
|||
dk .. ':',
|
||||
'cat:',
|
||||
rk .. ':',
|
||||
'file:',
|
||||
'+!',
|
||||
'-!',
|
||||
'-' .. dk,
|
||||
'-cat',
|
||||
'-' .. rk,
|
||||
'-file',
|
||||
}
|
||||
end
|
||||
|
||||
|
|
@ -270,3 +272,11 @@ end)
|
|||
vim.keymap.set({ 'n', 'x', 'o' }, '<Plug>(pending-prev-task)', function()
|
||||
require('pending.textobj').prev_task(vim.v.count1)
|
||||
end)
|
||||
|
||||
vim.keymap.set('n', '<Plug>(pending-goto-file)', function()
|
||||
require('pending').goto_file()
|
||||
end)
|
||||
|
||||
vim.keymap.set('n', '<Plug>(pending-add-here)', function()
|
||||
require('pending').add_here()
|
||||
end)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue