got bash completion working for "git annex" not just "git-annex"
This needs a patch to git to cause the git-annex completion to be auto-loaded when completing "git annex <tab>". Otherwise, it will only load when "git-annex" is tab completed. Once loaded, it works for both uses. I've submitted the git patch to the git mailing list.
This commit is contained in:
parent
0de63300d6
commit
386b8c394e
4 changed files with 29 additions and 18 deletions
25
bash-completion.bash
Normal file
25
bash-completion.bash
Normal file
|
@ -0,0 +1,25 @@
|
|||
# Use git-annex's built-in bash completion
|
||||
# This bash completion is generated by the option parser, so it covers all
|
||||
# commands, all options, and will never go out of date!
|
||||
source <(git-annex --bash-completion-script git-annex)
|
||||
|
||||
# Called by git's bash completion script when completing "git annex"
|
||||
_git_annex() {
|
||||
local cmdline
|
||||
CMDLINE=(--bash-completion-index $(($COMP_CWORD - 1)))
|
||||
|
||||
local seen_git
|
||||
local seen_annex
|
||||
for arg in ${COMP_WORDS[@]}; do
|
||||
if [ "$arg" = git ] && [ -z "$seen_git" ]; then
|
||||
seen_git=1
|
||||
CMDLINE=(${CMDLINE[@]} --bash-completion-word git-annex)
|
||||
elif [ "$arg" = annex ] && [ -z "$seen_annex" ]; then
|
||||
seen_annex=1
|
||||
else
|
||||
CMDLINE=(${CMDLINE[@]} --bash-completion-word $arg)
|
||||
fi
|
||||
done
|
||||
|
||||
COMPREPLY=( $(git-annex "${CMDLINE[@]}") )
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue