diff --git a/plugins/arcanist/arcanist.plugin.zsh b/plugins/arcanist/arcanist.plugin.zsh index 3f4eb07f..b9f5c74e 100644 --- a/plugins/arcanist/arcanist.plugin.zsh +++ b/plugins/arcanist/arcanist.plugin.zsh @@ -19,3 +19,32 @@ alias arl='arc land' alias arli='arc lint' alias arls='arc list' alias arpa='arc patch' + +# +# Completion +# + +autoload -U +X bashcompinit && bashcompinit + +_arc () +{ + CUR="${COMP_WORDS[COMP_CWORD]}" + COMPREPLY=() + OPTS=$(echo | arc shell-complete --current ${COMP_CWORD} -- ${COMP_WORDS[@]}) + + if [ $? -ne 0 ]; then + return $? + fi + + if [ "$OPTS" = "FILE" ]; then + COMPREPLY=( $(compgen -f -- ${CUR}) ) + return 0 + fi + + if [ "$OPTS" = "ARGUMENT" ]; then + return 0 + fi + + COMPREPLY=( $(compgen -W "${OPTS}" -- ${CUR}) ) +} +complete -F _arc -o filenames arc