Browse Source

completion: zsh: improve bash script loading

It's better to check in multiple locations, so the user doesn't have to.

And update the documentation.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Felipe Contreras 12 years ago committed by Junio C Hamano
parent
commit
3646b1a5ab
  1. 27
      contrib/completion/git-completion.zsh

27
contrib/completion/git-completion.zsh

@ -4,18 +4,17 @@
# #
# Copyright (c) 2012-2013 Felipe Contreras <felipe.contreras@gmail.com> # Copyright (c) 2012-2013 Felipe Contreras <felipe.contreras@gmail.com>
# #
# You need git's bash completion script installed somewhere, by default on the # You need git's bash completion script installed somewhere, by default it
# same directory as this script. # would be the location bash-completion uses.
# #
# If your script is on ~/.git-completion.sh instead, you can configure it on # If your script is somewhere else, you can configure it on your ~/.zshrc:
# your ~/.zshrc:
# #
# zstyle ':completion:*:*:git:*' script ~/.git-completion.sh # zstyle ':completion:*:*:git:*' script ~/.git-completion.sh
# #
# The recommended way to install this script is to copy to # The recommended way to install this script is to copy to '~/.zsh/_git', and
# '~/.zsh/completion/_git', and then add the following to your ~/.zshrc file: # then add the following to your ~/.zshrc file:
# #
# fpath=(~/.zsh/completion $fpath) # fpath=(~/.zsh $fpath)


complete () complete ()
{ {
@ -27,7 +26,19 @@ zstyle -T ':completion:*:*:git:*' tag-order && \
zstyle ':completion:*:*:git:*' tag-order 'common-commands' zstyle ':completion:*:*:git:*' tag-order 'common-commands'


zstyle -s ":completion:*:*:git:*" script script zstyle -s ":completion:*:*:git:*" script script
test -z "$script" && script="$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash if [ -z "$script" ]; then
local -a locations
local e
locations=(
'/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
done
fi
ZSH_VERSION='' . "$script" ZSH_VERSION='' . "$script"


__gitcomp () __gitcomp ()

Loading…
Cancel
Save