Search code examples
zshzsh-completion

Custom zsh completion for a function based on default arguments


How can I setup completion for a function, based on existing completion definitions and default arguments.

A simplified example (which could be rewritten as an alias):

gpl() {
    git pull origin $@
}

This should have the same completion as after git pull origin.


Solution

  • compdef -e 'words[1]=(git pull origin); service=git; (( CURRENT+=2 )); _git' ggl
    

    This massages the $words, $service and $CURRENT vars used by the completion system, and then calls the _git completion function.

    (Thanks to Mikachu on #zsh).