Feature: Optionally disable todo propagation to parents/children (Issue #954)

taskwiki integrates vimwiki with taskwarrior, and in doing so changes
the semantics of checkboxes a bit:

    * [ ] Install Taskwiki   |   pending task
    * [X] Install Taskwiki   |   completed task
    * [D] Install Taskwiki   |   deleted task
    * [S] Install Taskwiki   |   started task
    * [W] Install Taskwiki   |   waiting task

It's still desirable for vimwiki to automatically insert `* [ ]` on
`i_<CR>`, `o` and `O` and to syntax highlight all these five as
checkboxes, so I have this in my .vimrc:

    let g:vimwiki_listsym_rejected = 'D'
    let g:vimwiki_listsyms = ' WSX'

but it results in undesirable behaviour with task hierarchies: when I
add a new subtask (using `i_<CR>`, `o` or `O`)
or mark a subtask done, the parent's checkbox is updated to reflect its
overall completion, to one of ` `, `W`, `S` or `X`, depending on
subtasks completion. This makes little sense in taskwiki. One usually
doesn't want to touch the "parent" task in taskwarrior until the
"subtasks" are done. Setting

    let g:vimwiki_listsym_rejected = 'W'
    let g:vimwiki_listsyms = ' SX'

results in slightly less illogical behaviour, but it still assumes that
(1) all subtasks are visible (not necessarily true in taskwiki) and
(2) that it's a parent/subtask relationship, not a dependency
relationship (not true in taskwarrior, questionable in taskwiki).

This commit adds an option to disable this behaviour.
This commit is contained in:
Tomas Janousek
2020-10-24 17:54:19 +01:00
committed by Tinmarino
parent f794f1e284
commit 2a31984369
5 changed files with 111 additions and 4 deletions
+17 -3
View File
@@ -1880,9 +1880,10 @@ parent items: >
* [ ] Add highlighting to list item boxes.
* [ ] Add [ ] to the next list item created using o, O or <CR>.
Parent items should change when their child items change. If not, use
|vimwiki_glr|. The symbol between [ ] depends on the percentage of toggled
child items (see also |vimwiki-listsyms|): >
Parent items should change when their child items change unless disabled via
|vimwiki-option-listsyms_propagate|. If not, use |vimwiki_glr|. The symbol
between [ ] depends on the percentage of toggled child items (see also
|vimwiki-listsyms|): >
[ ] -- 0%
[.] -- 1-33%
[o] -- 34-66%
@@ -2674,6 +2675,16 @@ You can set it to a more fancy symbol like this:
let g:vimwiki_list = [{'path': '~/path/', 'listsym_rejected' = '✗'}]
*vimwiki-option-listsyms_propagate*
------------------------------------------------------------------------------
Key Default value Values~
listsyms_propagate 1 0, 1
Description~
Set this option to 0 to disable propagation of todo list item status to
parents and children.
*vimwiki-option-auto_tags*
------------------------------------------------------------------------------
Key Default value Values~
@@ -3831,6 +3842,7 @@ Contributors and their Github usernames in roughly chronological order:
- Benney Au (@chinwobble)
- David Sierra DiazGranados (@davidsierradz)
- Daniel Moura (@dmouraneto)
- Tomáš Janoušek (@liskin)
==============================================================================
16. Changelog *vimwiki-changelog*
@@ -3842,6 +3854,8 @@ http://code.google.com/p/vimwiki/issues/list. They may be accessible from
https://github.com/vimwiki-backup/vimwiki/issues.
New:~
* Feature: #954: Add option |vimwiki-option-listsyms_propagate| to disable
todo propagation to parents/children
* Issue #1009: |foldmethod| syntax works for markdown (|g:vimwiki_folding|)
Also the VimwikiHeader1Folding (1..60 regions support end-of-file `/\%$`
as end maker