From 450ae43a43b2d0d94ee1f6f0063d5e6ff284f5ad Mon Sep 17 00:00:00 2001 From: Yann Dirson Date: Mon, 7 May 2007 01:13:57 +0200 Subject: [PATCH] Teach bash to complete branch names in some places. This patch causes bash completion to look for branch names instead of patch names for "branch" and "rebase". Unfortunately, the current completion framework does not seem flexible enough to get branch completion after "-b" flags, but I feel things are already better this way. Signed-off-by: Yann Dirson --- contrib/stgit-completion.bash | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/contrib/stgit-completion.bash b/contrib/stgit-completion.bash index 3c3bf92..7e45c7e 100644 --- a/contrib/stgit-completion.bash +++ b/contrib/stgit-completion.bash @@ -98,6 +98,12 @@ _all_other_patches () | grep -v "^$(cat $g/patches/$b/current 2> /dev/null)$" } +_all_branches () +{ + local g=$(_gitdir) + [ "$g" ] && (cd .git/patches/ && echo *) +} + # List the command options _cmd_options () { @@ -137,6 +143,11 @@ _complete_patch_range_options () COMPREPLY=($(compgen -W "$options" -- "$cur")) } +_complete_branch () +{ + COMPREPLY=($(compgen -W "$(_cmd_options $1) $($2)" -- "${COMP_WORDS[COMP_CWORD]}")) +} + # Generate completions for options from the given list. _complete_options () { @@ -211,6 +222,9 @@ _stg () sync) _stg_patches $command _applied_patches ;; # working-copy commands diff) _stg_patches_options $command _applied_patches "-r --range" ;; + # commands that usually raher accept branches + branch) _complete_branch $command _all_branches ;; + rebase) _complete_branch $command _all_branches ;; # all the other commands *) _stg_common $command ;; esac -- 2.11.0