#compdef {pkgname} ###-begin-{pkgname}-completion-### if type compdef &>/dev/null; then _{pkgname}_completion () { local reply local si=$IFS IFS=$'\n' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" SHELL=zsh {completer} completion-server -- "${words[@]}")) IFS=$si if [ "$reply" = "__tabtab_complete_files__" ]; then _files else _describe 'values' reply fi } # When called by the Zsh completion system, this will end with # "loadautofunc" when initially autoloaded and "shfunc" later on, otherwise, # the script was "eval"-ed so use "compdef" to register it with the # completion system if [[ $zsh_eval_context == *func ]]; then _{pkgname}_completion "$@" else compdef _{pkgname}_completion {pkgname} fi fi ###-end-{pkgname}-completion-###