diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-22 15:01:14 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-22 15:01:14 -0500 |
| commit | 082037ad75e21405655adb492d0c85e342f4f771 (patch) | |
| tree | 67b239762729034b12304c71d945206a587c65e0 /modules/coverage-elisp.el | |
| parent | 030bb13ba5742f331dd30a55bbce5a13917d4d63 (diff) | |
| download | dotemacs-082037ad75e21405655adb492d0c85e342f4f771.tar.gz dotemacs-082037ad75e21405655adb492d0c85e342f4f771.zip | |
feat(org-config): add cj/org-finalize-task with tests
I added a command on C-; O d that finalizes the task at point. It prompts for a finalized keyword from org-done-keywords, so the picker tracks org-todo-keywords automatically. Marking the task done fires the org-roam journal-copy hook, so the completed task lands in today's daily.
Then the heading is reshaped by depth. A sub-task (level 3 or deeper, or a VERIFY at any depth) becomes a dated log entry: the keyword and priority cookie are stripped, a sortable timestamp is prepended, and the tags are kept. A top-level task keeps its keyword and gains a date-only CLOSED line.
The command binds org-inhibit-logging around the org-todo call so it owns the CLOSED line rather than depending on org-log-done, which is set inconsistently across two modules. The journal hook keys off org-state, not org-log-done, so the copy still fires.
Tests run in org temp-buffers with the journal hook bound to nil, exercise the real org primitives, and inject a fixed time so the stamp shape is deterministic.
Diffstat (limited to 'modules/coverage-elisp.el')
0 files changed, 0 insertions, 0 deletions
