Merge branch 'ml/completion-zsh'
* ml/completion-zsh: completion: make compatible with zsh
This commit is contained in:
commit
5a3a484d57
@ -21,6 +21,11 @@
|
|||||||
# 2) Added the following line to your .bashrc:
|
# 2) Added the following line to your .bashrc:
|
||||||
# source ~/.git-completion.sh
|
# source ~/.git-completion.sh
|
||||||
#
|
#
|
||||||
|
# Or, add the following lines to your .zshrc:
|
||||||
|
# autoload bashcompinit
|
||||||
|
# bashcompinit
|
||||||
|
# source ~/.git-completion.sh
|
||||||
|
#
|
||||||
# 3) Consider changing your PS1 to also show the current branch:
|
# 3) Consider changing your PS1 to also show the current branch:
|
||||||
# PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
|
# PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
|
||||||
#
|
#
|
||||||
@ -138,11 +143,12 @@ __git_ps1_show_upstream ()
|
|||||||
# get the upstream from the "git-svn-id: ..." in a commit message
|
# get the upstream from the "git-svn-id: ..." in a commit message
|
||||||
# (git-svn uses essentially the same procedure internally)
|
# (git-svn uses essentially the same procedure internally)
|
||||||
local svn_upstream=($(git log --first-parent -1 \
|
local svn_upstream=($(git log --first-parent -1 \
|
||||||
--grep="^git-svn-id: \(${svn_url_pattern:2}\)" 2>/dev/null))
|
--grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
|
||||||
if [[ 0 -ne ${#svn_upstream[@]} ]]; then
|
if [[ 0 -ne ${#svn_upstream[@]} ]]; then
|
||||||
svn_upstream=${svn_upstream[ ${#svn_upstream[@]} - 2 ]}
|
svn_upstream=${svn_upstream[ ${#svn_upstream[@]} - 2 ]}
|
||||||
svn_upstream=${svn_upstream%@*}
|
svn_upstream=${svn_upstream%@*}
|
||||||
for ((n=1; "$n" <= "${#svn_remote[@]}"; ++n)); do
|
local n_stop="${#svn_remote[@]}"
|
||||||
|
for ((n=1; n <= n_stop; ++n)); do
|
||||||
svn_upstream=${svn_upstream#${svn_remote[$n]}}
|
svn_upstream=${svn_upstream#${svn_remote[$n]}}
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -2339,6 +2345,11 @@ _git ()
|
|||||||
{
|
{
|
||||||
local i c=1 command __git_dir
|
local i c=1 command __git_dir
|
||||||
|
|
||||||
|
if [[ -n $ZSH_VERSION ]]; then
|
||||||
|
emulate -L bash
|
||||||
|
setopt KSH_TYPESET
|
||||||
|
fi
|
||||||
|
|
||||||
while [ $c -lt $COMP_CWORD ]; do
|
while [ $c -lt $COMP_CWORD ]; do
|
||||||
i="${COMP_WORDS[c]}"
|
i="${COMP_WORDS[c]}"
|
||||||
case "$i" in
|
case "$i" in
|
||||||
@ -2372,17 +2383,22 @@ _git ()
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
local completion_func="_git_${command//-/_}"
|
local completion_func="_git_${command//-/_}"
|
||||||
declare -F $completion_func >/dev/null && $completion_func && return
|
declare -f $completion_func >/dev/null && $completion_func && return
|
||||||
|
|
||||||
local expansion=$(__git_aliased_command "$command")
|
local expansion=$(__git_aliased_command "$command")
|
||||||
if [ -n "$expansion" ]; then
|
if [ -n "$expansion" ]; then
|
||||||
completion_func="_git_${expansion//-/_}"
|
completion_func="_git_${expansion//-/_}"
|
||||||
declare -F $completion_func >/dev/null && $completion_func
|
declare -f $completion_func >/dev/null && $completion_func
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
_gitk ()
|
_gitk ()
|
||||||
{
|
{
|
||||||
|
if [[ -n $ZSH_VERSION ]]; then
|
||||||
|
emulate -L bash
|
||||||
|
setopt KSH_TYPESET
|
||||||
|
fi
|
||||||
|
|
||||||
__git_has_doubledash && return
|
__git_has_doubledash && return
|
||||||
|
|
||||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
@ -2417,3 +2433,29 @@ if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then
|
|||||||
complete -o bashdefault -o default -o nospace -F _git git.exe 2>/dev/null \
|
complete -o bashdefault -o default -o nospace -F _git git.exe 2>/dev/null \
|
||||||
|| complete -o default -o nospace -F _git git.exe
|
|| complete -o default -o nospace -F _git git.exe
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ -n $ZSH_VERSION ]]; then
|
||||||
|
shopt () {
|
||||||
|
local option
|
||||||
|
if [ $# -ne 2 ]; then
|
||||||
|
echo "USAGE: $0 (-q|-s|-u) <option>" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
case "$2" in
|
||||||
|
nullglob)
|
||||||
|
option="$2"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "$0: invalid option: $2" >&2
|
||||||
|
return 1
|
||||||
|
esac
|
||||||
|
case "$1" in
|
||||||
|
-q) setopt | grep -q "$option" ;;
|
||||||
|
-u) unsetopt "$option" ;;
|
||||||
|
-s) setopt "$option" ;;
|
||||||
|
*)
|
||||||
|
echo "$0: invalid flag: $1" >&2
|
||||||
|
return 1
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user