[RFC/PATCH v4 6/6] completion: add public _GIT_complete helper
From: Felipe Contreras <hidden>
Date: 2016-06-15 22:53:45
Subsystem:
the rest · Maintainer:
Linus Torvalds
So that users can easily define aliases, such as: _GIT_complete gf git_fetch Signed-off-by: Felipe Contreras <redacted> --- contrib/completion/git-completion.bash | 10 +++++----- t/t9902-completion.sh | 9 ++++++++- 2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 049110e..2b7ef02 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash@@ -2678,6 +2678,7 @@ _gitk () __git_func_wrap () { + local cmd="${1#git_}" cmd_pos=1 if [[ -n ${ZSH_VERSION-} ]]; then emulate -L bash setopt KSH_TYPESET
@@ -2695,8 +2696,7 @@ __git_func_wrap () _$1 } -# this is NOT a public function; use at your own risk -__git_complete () +_GIT_complete () { local name="${2-$1}" local wrapper="_${name}_wrap"
@@ -2705,13 +2705,13 @@ __git_complete () || complete -o default -o nospace -F $wrapper $1 } -__git_complete git -__git_complete gitk +_GIT_complete git +_GIT_complete gitk # The following are necessary only for Cygwin, and only are needed # when the user has tab-completed the executable name and consequently # included the '.exe' suffix. # if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then -__git_complete git.exe git +_GIT_complete git.exe git fi
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 6904594..2037452 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh@@ -63,7 +63,7 @@ run_completion () local _cword _words=( $1 ) (( _cword = ${#_words[@]} - 1 )) - _git_wrap && print_comp + ${comp_wrap-_git_wrap} && print_comp } test_completion ()
@@ -316,4 +316,11 @@ test_expect_success 'global options extra checks' ' test_completion "git --no-pager tag -d v" "v0.1 " ' +test_expect_success 'aliases' ' + local comp_wrap=_git_fetch_wrap && + _GIT_complete gf git_fetch && + test_completion "gf o" "origin " && + test_completion "gf origin m" "master:master " +' + test_done
--
1.7.10