Skip to content

Commit

Permalink
completion: zsh: improve bash script loading
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Felipe Contreras authored and Junio C Hamano committed May 29, 2013
1 parent 734b2f0 commit 3646b1a
Showing 1 changed file with 19 additions and 8 deletions.
27 changes: 19 additions & 8 deletions contrib/completion/git-completion.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,17 @@
#
# Copyright (c) 2012-2013 Felipe Contreras <felipe.contreras@gmail.com>
#
# You need git's bash completion script installed somewhere, by default on the
# same directory as this script.
# You need git's bash completion script installed somewhere, by default it
# would be the location bash-completion uses.
#
# If your script is on ~/.git-completion.sh instead, you can configure it on
# your ~/.zshrc:
# If your script is somewhere else, 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:
# The recommended way to install this script is to copy to '~/.zsh/_git', and
# then add the following to your ~/.zshrc file:
#
# fpath=(~/.zsh/completion $fpath)
# fpath=(~/.zsh $fpath)

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

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"

__gitcomp ()
Expand Down

0 comments on commit 3646b1a

Please sign in to comment.