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,6 +12,7 @@ local parse = require('pending.parse')
|
|||
---@field show_category? boolean
|
||||
---@field priority? integer
|
||||
---@field recur? string
|
||||
---@field file? string
|
||||
|
||||
---@class pending.views
|
||||
local M = {}
|
||||
|
|
@ -159,6 +160,7 @@ function M.category_view(tasks)
|
|||
overdue = task.status == 'pending' and task.due ~= nil and parse.is_overdue(task.due)
|
||||
or nil,
|
||||
recur = task.recur,
|
||||
file = task._extra and task._extra.file or nil,
|
||||
})
|
||||
end
|
||||
end
|
||||
|
|
@ -210,6 +212,7 @@ function M.priority_view(tasks)
|
|||
overdue = task.status == 'pending' and task.due ~= nil and parse.is_overdue(task.due) or nil,
|
||||
show_category = true,
|
||||
recur = task.recur,
|
||||
file = task._extra and task._extra.file or nil,
|
||||
})
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue