As task is a very generic name that conflicts with for example
taskwarrior, some packagers might choose to change it. See my package in
the AUR: https://aur.archlinux.org/packages/go-task.
This change makes it easier to configure the name for downstream
packagers.
* List all current option flags
* Provide descriptions for every flag
* Pass the `task -l` descriptions as descriptions for the task completions
+ The prior logic had 4 invocations of sed and 1 of awk, and only kept the
task name
+ Do all filtering in zsh without forking (except for `task` itself)
* When `--taskfile` is used, complete tasks from _that_ file
+ And otherwise, enable completions if only the `.dist` variant files are
present
* Ensure mutually exclusive options preclude each other
+ the `+ '(groupname)'` clause defines this
* Fix `--dir` to take directories, not files
1. 'compgen -c' lists _all_ command names on the system, which is not
appropriate for this script, furthermore echo does not read from stdin
so the output is lost.
2. use _get_comp_words_by_ref and __ltrim_colon_completions to handle task
names with colons.
"...modifying COMP_WORDBREAKS in your completion script is not safe
(as it is a global variable and it has the side effect of affecting
the behavior of other completion scripts"
Ref.: https://stackoverflow.com/a/12495727/7044304
3. Add options completion
4. Use task --list-all
Added a --dry-run flag that compiles and steps through each task, but does not execute them. The commands that would have been run are printed. See #125.