Mark Szymanski | 75bbdc4 | 2010-10-27 17:32:06 -0500 | [diff] [blame] | 1 | _todo() |
| 2 | { |
| 3 | local cur prev opts |
| 4 | COMPREPLY=() |
| 5 | cur="${COMP_WORDS[COMP_CWORD]}" |
| 6 | prev="${COMP_WORDS[COMP_CWORD-1]}" |
| 7 | |
| 8 | COMMANDS="add a addto addm append app archive command del \ |
| 9 | rm depri dp do help list ls listall lsa listcon \ |
| 10 | lsc listfile lf listpri lsp listproj lsproj move \ |
| 11 | mv prepend prep pri p replace report" |
| 12 | |
| 13 | # Add custom commands from add-ons, if installed. |
| 14 | COMMANDS="$COMMANDS $('ls' ${TODO_ACTIONS_DIR:-$HOME/.todo.actions.d}/ 2>/dev/null)" |
| 15 | |
| 16 | OPTS="-@ -@@ -+ -++ -d -f -h -p -P -PP -a -n -t -v -vv -V -x" |
| 17 | |
| 18 | if [ $COMP_CWORD -eq 1 ]; then |
| 19 | completions="$COMMANDS $OPTS" |
| 20 | else |
| 21 | case "${prev}" in |
| 22 | -*) completions="$COMMANDS $OPTS";; |
| 23 | *) return 0;; |
| 24 | esac |
| 25 | fi |
| 26 | |
| 27 | COMPREPLY=( $( compgen -W "$completions" -- $cur )) |
| 28 | return 0 |
| 29 | } |
| 30 | |
| 31 | complete -F _todo todo.sh |
| 32 | # If you define an alias (e.g. "t") to todo.sh, you need to explicitly enable |
| 33 | # completion for it, too: |
| 34 | complete -F _todo t |