diff --git a/plugins/wp-cli/wp-cli.plugin.zsh b/plugins/wp-cli/wp-cli.plugin.zsh index 5d9551e24..71636cff2 100644 --- a/plugins/wp-cli/wp-cli.plugin.zsh +++ b/plugins/wp-cli/wp-cli.plugin.zsh @@ -136,3 +136,25 @@ alias wpwd='wp widget delete' alias wpwl='wp widget list' alias wpwm='wp widget move' alias wpwu='wp widget update' + + +autoload -U +X bashcompinit && bashcompinit +# bash completion for the `wp` command + +_wp_complete() { + local cur=${COMP_WORDS[COMP_CWORD]} + + IFS=$'\n'; # want to preserve spaces at the end + local opts="$(wp cli completions --line="$COMP_LINE" --point="$COMP_POINT")" + + if [[ "$opts" =~ \\s* ]] + then + COMPREPLY=( $(compgen -f -- $cur) ) + elif [[ $opts = "" ]] + then + COMPREPLY=( $(compgen -f -- $cur) ) + else + COMPREPLY=( ${opts[*]} ) + fi +} +complete -o nospace -F _wp_complete wp