#compdef pkg ## vim:ft=zsh local arguments_action arguments_list arguments_listall local all installed all=(pkg list-all) installed=(pkg list) arguments_action=( '1:action:(add install changelog changeroot delete remove info list list-all local-update log remote-update status update upgrade)' ) arguments_list=( '2:package:($($installed))' ) arguments_listall=( '2:package:($($all))' ) if [[ $CURRENT -ge 3 ]] { case ${words[2]} in changelog|delete|remove|status|upgrade) _arguments -s $arguments_list ;; add|info|install) _arguments -s $arguments_listall ;; esac } else { _arguments -s $arguments_action }