#compdef git-hub #autoload # # Completes git-hub. # # Authors: # Sorin Ionescu # local state remotes remote branches files ret=1 _arguments -C -s -S \ '1::args:->remote' \ '2::args:->branch' \ '3::args:->file' && ret=0 case "$state" in (remote) remotes=($( git config --local --get-regexp 'remote.*.url' \ | awk 'BEGIN {FS="."} ; {print $2}' )) _describe -t branch 'remotes' remotes && ret=0 ;; (branch) remote="$words[(($CURRENT - 1))]" branches=($( git ls-remote --heads "$remote" \ | awk '{gsub(/refs\/heads\//, "", $2)} ; {print $2}' )) _describe -t branch 'branches' branches && ret=0 ;; (file) files=(${(0)"$(_call_program files git ls-files -z --exclude-standard 2>/dev/null)"}) _wanted file expl 'file' _multi_parts - / files && ret=0 ;; esac return $ret