push: propagate remote and refspec with --recurse-submodules
[gitweb.git] / contrib / completion / git-completion.zsh
index fac5e711ebbbd074366d89848165e0f9dbc36c36..c3521fbfc44fd8db18244bc10d346ee39b1c3c90 100644 (file)
@@ -9,7 +9,7 @@
 #
 # If your script is somewhere else, you can configure it on your ~/.zshrc:
 #
-#  zstyle ':completion:*:*:git:*' script ~/.git-completion.sh
+#  zstyle ':completion:*:*:git:*' script ~/.git-completion.zsh
 #
 # The recommended way to install this script is to copy to '~/.zsh/_git', and
 # then add the following to your ~/.zshrc file:
@@ -30,10 +30,10 @@ if [ -z "$script" ]; then
        local -a locations
        local e
        locations=(
+               $(dirname ${funcsourcetrace[1]%:*})/git-completion.bash
                '/etc/bash_completion.d/git' # fedora, old debian
                '/usr/share/bash-completion/completions/git' # arch, ubuntu, new debian
                '/usr/share/bash-completion/git' # gentoo
-               $(dirname ${funcsourcetrace[1]%:*})/git-completion.bash
                )
        for e in $locations; do
                test -f $e && script="$e" && break
@@ -67,6 +67,15 @@ __gitcomp ()
        esac
 }
 
+__gitcomp_direct ()
+{
+       emulate -L zsh
+
+       local IFS=$'\n'
+       compset -P '*[=:]'
+       compadd -Q -- ${=1} && _ret=0
+}
+
 __gitcomp_nl ()
 {
        emulate -L zsh
@@ -76,6 +85,14 @@ __gitcomp_nl ()
        compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
 }
 
+__gitcomp_nl_append ()
+{
+       emulate -L zsh
+
+       local IFS=$'\n'
+       compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
+}
+
 __gitcomp_file ()
 {
        emulate -L zsh
@@ -96,6 +113,7 @@ __git_zsh_bash_func ()
 
        local expansion=$(__git_aliased_command "$command")
        if [ -n "$expansion" ]; then
+               words[1]=$expansion
                completion_func="_git_${expansion//-/_}"
                declare -f $completion_func >/dev/null && $completion_func
        fi