diff --git a/lua/pending/diff.lua b/lua/pending/diff.lua index 723dee1..66e7303 100644 --- a/lua/pending/diff.lua +++ b/lua/pending/diff.lua @@ -11,6 +11,7 @@ local parse = require('pending.parse') ---@field due? string ---@field rec? string ---@field rec_mode? string +---@field forge_ref? pending.ForgeRef ---@field lnum integer ---@class pending.diff @@ -65,6 +66,7 @@ function M.parse_buffer(lines) due = metadata.due, rec = metadata.rec, rec_mode = metadata.rec_mode, + forge_ref = metadata.forge_ref, lnum = i, }) end @@ -113,6 +115,7 @@ function M.apply(lines, s, hidden_ids) recur = entry.rec, recur_mode = entry.rec_mode, order = order_counter, + _extra = entry.forge_ref and { _forge_ref = entry.forge_ref } or nil, }) else seen_ids[entry.id] = true @@ -147,6 +150,13 @@ function M.apply(lines, s, hidden_ids) changed = true end end + if entry.forge_ref ~= nil then + if not task._extra then + task._extra = {} + end + task._extra._forge_ref = entry.forge_ref + changed = true + end if entry.status and task.status ~= entry.status then task.status = entry.status if entry.status == 'done' then @@ -173,6 +183,7 @@ function M.apply(lines, s, hidden_ids) recur = entry.rec, recur_mode = entry.rec_mode, order = order_counter, + _extra = entry.forge_ref and { _forge_ref = entry.forge_ref } or nil, }) end