#compdef task # # This script is currently unmaintained and was released for an earlier version # of task. We welcome any zsh user that wants to contribute to task to take a # look at this script and either confirm its working status or improve it. # Please contact us at support@taskwarrior.org if you have further questions on # how to contribute to task. # # zsh completion for task # # Copyright 2009 P.C. Shyamshankar # All rights reserved. # # This script is part of the task project. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # # You should have received a copy of the GNU General Public License along with # this program; if not, write to the # # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, # Boston, MA # 02110-1301 # USA # typeset -g _task_cmds _task_cmds=($(task _commands)) _task() { _arguments -s -S \ "*::task command:_task_commands" return 0 } (( $+functions[_task_commands] )) || _task_commands() { local cmd ret=1 if (( CURRENT == 1 )); then _describe -t commands 'task command' _task_cmds else local curcontext="${curcontext}" cmd="${_task_cmds[(r)$words[1]:*]%%:*}" if (( $#cmd )); then curcontext="${curcontext%:*:*}:task-${cmd}" _call_function ret _task_${cmd} || _message "No command remaining." else _message "Unknown subcommand ${cmd}" fi return ret fi }