Merge branch 'sp/maint-bash-completion-optim' into maint
* sp/maint-bash-completion-optim: bash completion: Resolve git show ref:path<tab> losing ref: portion bash completion: Append space after file names have been completed bash completion: Don't offer "a.." as a completion for "a." bash completion: Improve responsiveness of git-log completionmaint
commit
c9784cd0c8
|
@ -45,6 +45,11 @@
|
||||||
# git@vger.kernel.org
|
# git@vger.kernel.org
|
||||||
#
|
#
|
||||||
|
|
||||||
|
case "$COMP_WORDBREAKS" in
|
||||||
|
*:*) : great ;;
|
||||||
|
*) COMP_WORDBREAKS="$COMP_WORDBREAKS:"
|
||||||
|
esac
|
||||||
|
|
||||||
__gitdir ()
|
__gitdir ()
|
||||||
{
|
{
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
|
@ -114,9 +119,20 @@ __git_ps1 ()
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__gitcomp_1 ()
|
||||||
|
{
|
||||||
|
local c IFS=' '$'\t'$'\n'
|
||||||
|
for c in $1; do
|
||||||
|
case "$c$2" in
|
||||||
|
--*=*) printf %s$'\n' "$c$2" ;;
|
||||||
|
*.) printf %s$'\n' "$c$2" ;;
|
||||||
|
*) printf %s$'\n' "$c$2 " ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
__gitcomp ()
|
__gitcomp ()
|
||||||
{
|
{
|
||||||
local all c s=$'\n' IFS=' '$'\t'$'\n'
|
|
||||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
if [ $# -gt 2 ]; then
|
if [ $# -gt 2 ]; then
|
||||||
cur="$3"
|
cur="$3"
|
||||||
|
@ -124,21 +140,14 @@ __gitcomp ()
|
||||||
case "$cur" in
|
case "$cur" in
|
||||||
--*=)
|
--*=)
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
return
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
for c in $1; do
|
local IFS=$'\n'
|
||||||
case "$c$4" in
|
COMPREPLY=($(compgen -P "$2" \
|
||||||
--*=*) all="$all$c$4$s" ;;
|
-W "$(__gitcomp_1 "$1" "$4")" \
|
||||||
*.) all="$all$c$4$s" ;;
|
-- "$cur"))
|
||||||
*) all="$all$c$4 $s" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
IFS=$s
|
|
||||||
COMPREPLY=($(compgen -P "$2" -W "$all" -- "$cur"))
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
__git_heads ()
|
__git_heads ()
|
||||||
|
@ -290,9 +299,23 @@ __git_complete_file ()
|
||||||
ls="$ref"
|
ls="$ref"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
case "$COMP_WORDBREAKS" in
|
||||||
|
*:*) : great ;;
|
||||||
|
*) pfx="$ref:$pfx" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
local IFS=$'\n'
|
||||||
COMPREPLY=($(compgen -P "$pfx" \
|
COMPREPLY=($(compgen -P "$pfx" \
|
||||||
-W "$(git --git-dir="$(__gitdir)" ls-tree "$ls" \
|
-W "$(git --git-dir="$(__gitdir)" ls-tree "$ls" \
|
||||||
| sed '/^100... blob /s,^.* ,,
|
| sed '/^100... blob /{
|
||||||
|
s,^.* ,,
|
||||||
|
s,$, ,
|
||||||
|
}
|
||||||
|
/^120000 blob /{
|
||||||
|
s,^.* ,,
|
||||||
|
s,$, ,
|
||||||
|
}
|
||||||
/^040000 tree /{
|
/^040000 tree /{
|
||||||
s,^.* ,,
|
s,^.* ,,
|
||||||
s,$,/,
|
s,$,/,
|
||||||
|
@ -320,9 +343,6 @@ __git_complete_revlist ()
|
||||||
cur="${cur#*..}"
|
cur="${cur#*..}"
|
||||||
__gitcomp "$(__git_refs)" "$pfx" "$cur"
|
__gitcomp "$(__git_refs)" "$pfx" "$cur"
|
||||||
;;
|
;;
|
||||||
*.)
|
|
||||||
__gitcomp "$cur."
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
__gitcomp "$(__git_refs)"
|
__gitcomp "$(__git_refs)"
|
||||||
;;
|
;;
|
||||||
|
@ -691,7 +711,12 @@ _git_fetch ()
|
||||||
*)
|
*)
|
||||||
case "$cur" in
|
case "$cur" in
|
||||||
*:*)
|
*:*)
|
||||||
__gitcomp "$(__git_refs)" "" "${cur#*:}"
|
local pfx=""
|
||||||
|
case "$COMP_WORDBREAKS" in
|
||||||
|
*:*) : great ;;
|
||||||
|
*) pfx="${cur%%:*}:" ;;
|
||||||
|
esac
|
||||||
|
__gitcomp "$(__git_refs)" "$pfx" "${cur#*:}"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
local remote
|
local remote
|
||||||
|
@ -864,7 +889,14 @@ _git_push ()
|
||||||
git-push) remote="${COMP_WORDS[1]}" ;;
|
git-push) remote="${COMP_WORDS[1]}" ;;
|
||||||
git) remote="${COMP_WORDS[2]}" ;;
|
git) remote="${COMP_WORDS[2]}" ;;
|
||||||
esac
|
esac
|
||||||
__gitcomp "$(__git_refs "$remote")" "" "${cur#*:}"
|
|
||||||
|
local pfx=""
|
||||||
|
case "$COMP_WORDBREAKS" in
|
||||||
|
*:*) : great ;;
|
||||||
|
*) pfx="${cur%%:*}:" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
__gitcomp "$(__git_refs "$remote")" "$pfx" "${cur#*:}"
|
||||||
;;
|
;;
|
||||||
+*)
|
+*)
|
||||||
__gitcomp "$(__git_refs)" + "${cur#+}"
|
__gitcomp "$(__git_refs)" + "${cur#+}"
|
||||||
|
|
Loading…
Reference in New Issue