926eb7ba4c
Commit fea16b47b6
(Fri Jan 11 19:48:43 2013, Manlio Perillo,
git-completion.bash: add support for path completion), introduced a new
__gitcomp_file function that uses the bash builtin "compgen". The
function was redefined for ZSH in the deprecated section of
git-completion.bash, but not in the new git-completion.zsh script.
As a result, users of git-completion.zsh trying to complete "git add
fo<tab>" get an error:
git add fo__gitcomp_file:8: command not found: compgen
This patch adds the redefinition and removes the error.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
88 lines
1.5 KiB
Bash
88 lines
1.5 KiB
Bash
#compdef git gitk
|
|
|
|
# zsh completion wrapper for git
|
|
#
|
|
# You need git's bash completion script installed somewhere, by default on the
|
|
# same directory as this script.
|
|
#
|
|
# If your script is on ~/.git-completion.sh instead, you can configure it on
|
|
# your ~/.zshrc:
|
|
#
|
|
# zstyle ':completion:*:*:git:*' script ~/.git-completion.sh
|
|
#
|
|
# The recommended way to install this script is to copy to
|
|
# '~/.zsh/completion/_git', and then add the following to your ~/.zshrc file:
|
|
#
|
|
# fpath=(~/.zsh/completion $fpath)
|
|
|
|
complete ()
|
|
{
|
|
# do nothing
|
|
return 0
|
|
}
|
|
|
|
zstyle -s ":completion:*:*:git:*" script script
|
|
test -z "$script" && script="$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash
|
|
ZSH_VERSION='' . "$script"
|
|
|
|
__gitcomp ()
|
|
{
|
|
emulate -L zsh
|
|
|
|
local cur_="${3-$cur}"
|
|
|
|
case "$cur_" in
|
|
--*=)
|
|
;;
|
|
*)
|
|
local c IFS=$' \t\n'
|
|
local -a array
|
|
for c in ${=1}; do
|
|
c="$c${4-}"
|
|
case $c in
|
|
--*=*|*.) ;;
|
|
*) c="$c " ;;
|
|
esac
|
|
array+=("$c")
|
|
done
|
|
compset -P '*[=:]'
|
|
compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
|
|
;;
|
|
esac
|
|
}
|
|
|
|
__gitcomp_nl ()
|
|
{
|
|
emulate -L zsh
|
|
|
|
local IFS=$'\n'
|
|
compset -P '*[=:]'
|
|
compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
|
|
}
|
|
|
|
__gitcomp_file ()
|
|
{
|
|
emulate -L zsh
|
|
|
|
local IFS=$'\n'
|
|
compset -P '*[=:]'
|
|
compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
|
|
}
|
|
|
|
_git ()
|
|
{
|
|
local _ret=1
|
|
() {
|
|
emulate -L ksh
|
|
local cur cword prev
|
|
cur=${words[CURRENT-1]}
|
|
prev=${words[CURRENT-2]}
|
|
let cword=CURRENT-1
|
|
__${service}_main
|
|
}
|
|
let _ret && _default -S '' && _ret=0
|
|
return _ret
|
|
}
|
|
|
|
_git
|