:TwTable (added in #10) is currently read-only — <CR> bounces you to a :Tw markdown buffer to edit the task under the cursor.
It would be better to edit directly in the table: change a cell, :w, and have it apply like the markdown buffer does.
Design notes / open questions:
- The apply path (
taskmd.compute_diff + apply.on_write) is driven by the markdown line format and a <!-- taskmd filter: … | rendered_at: … --> header. A table would need an equivalent parse-back: column positions → field values, plus a per-row UUID anchor (the view already tracks row_uuids).
- Column widths are computed per render against the window's text area, so a cell's byte range shifts between renders. Parsing back needs to use the widths from the render that produced the buffer, not recompute them.
- Truncated cells (
…) must not be written back as the truncated text — either mark them non-editable or keep the full value alongside the display value.
- External-change protection (the
rendered_at / conflict machinery in compute_diff) should apply here too; a table that silently clobbers a concurrent task modify would be worse than the read-only version.
Until then, <CR> → edit in the markdown buffer → :w is the supported path.
:TwTable(added in #10) is currently read-only —<CR>bounces you to a:Twmarkdown buffer to edit the task under the cursor.It would be better to edit directly in the table: change a cell,
:w, and have it apply like the markdown buffer does.Design notes / open questions:
taskmd.compute_diff+apply.on_write) is driven by the markdown line format and a<!-- taskmd filter: … | rendered_at: … -->header. A table would need an equivalent parse-back: column positions → field values, plus a per-row UUID anchor (the view already tracksrow_uuids).…) must not be written back as the truncated text — either mark them non-editable or keep the full value alongside the display value.rendered_at/ conflict machinery incompute_diff) should apply here too; a table that silently clobbers a concurrenttask modifywould be worse than the read-only version.Until then,
<CR>→ edit in the markdown buffer →:wis the supported path.