A minor mode that simplifies Org’s plain list bullet cycle (- -> + -> * -> 1. -> 1) -> -) into a toggle. Basically, instead of choosing between all bullets for every sublist, you just choose if you want it unordered or ordered, and all indented list bullets of the same type will be cycled automatically.
Consider the following plain list:
- foo - bar With org-bulletproof-mode enabled, calling org-indent-item on the second item will automatically cycle its unordered bullet in relation to its new parent:
- foo + bar This particular behavior can be achieved using org-list-demote-modify-bullet, but org-bulletproof goes further by always forcing all child bullets that share their parent’s type to be cycled. So, calling org-cycle-list-bullet on the first item, making it ordered, forces the second item’s bullet to the default unordered bullet (-):
1. foo - bar Then, calling org-cycle-list-bullet on the second item, making it ordered, causes its bullet to be automatically cycled in relation to its parent:
1. foo 1) bar And you’ll never again have to remember which bullet is where in the cycle! :)
Install and load the package using your preferred method and run:
(global-org-bulletproof-mode +1)The cycles can be set using the customizable variables org-bulletproof-unordered-cycle and org-bulletproof-ordered-cycle. They’re flexible and should work with any combination of org-list-allow-alphabetical and org-plain-list-ordered-item-terminator. That said, if you encounter any unexpected or unintuitive behavior, please open a Github issue.