completion: don't offer commands when 'git --opt' needs an argument
The main git options '--git-dir', '-c', '-C', '--worktree' and '--namespace' require an argument, but attempting completion right after them lists git commands. Don't offer anything right after these options, thus let Bash fall back to filename completion, because - the three options '--git-dir', '-C' and '--worktree' do actually require a path argument, and - we don't complete the required argument of '-c' and '--namespace', and in that case the "standard" behavior of our completion script is to not offer anything, but fall back to filename completion. Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
91b7ea81e8
commit
7b329b9dab
@ -2808,6 +2808,17 @@ __git_main ()
|
|||||||
done
|
done
|
||||||
|
|
||||||
if [ -z "$command" ]; then
|
if [ -z "$command" ]; then
|
||||||
|
case "$prev" in
|
||||||
|
--git-dir|-C|--work-tree)
|
||||||
|
# these need a path argument, let's fall back to
|
||||||
|
# Bash filename completion
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
-c|--namespace)
|
||||||
|
# we don't support completing these options' arguments
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
case "$cur" in
|
case "$cur" in
|
||||||
--*) __gitcomp "
|
--*) __gitcomp "
|
||||||
--paginate
|
--paginate
|
||||||
|
Reference in New Issue
Block a user