completion: add 'symbolic-ref'

Even 'symbolic-ref' is only completed when
GIT_COMPLETION_SHOW_ALL_COMMANDS=1 is set, it currently defaults to
completing file names, which is not very helpful. Add a simple
completion function which completes options and refs.

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Roland Hieber
2024-04-25 12:18:42 +02:00
committed by Junio C Hamano
parent 3c2a3fdc38
commit cb85fdf4a4
2 changed files with 34 additions and 0 deletions

View File

@ -3523,6 +3523,17 @@ _git_svn ()
fi
}
_git_symbolic_ref () {
case "$cur" in
--*)
__gitcomp_builtin symbolic-ref
return
;;
esac
__git_complete_refs
}
_git_tag ()
{
local i c="$__git_cmd_idx" f=0

View File

@ -2495,6 +2495,29 @@ test_expect_success 'complete tree filename with metacharacters' '
EOF
'
test_expect_success 'symbolic-ref completes builtin options' '
test_completion "git symbolic-ref --d" <<-\EOF
--delete Z
EOF
'
test_expect_success 'symbolic-ref completes short ref names' '
test_completion "git symbolic-ref foo m" <<-\EOF
main Z
mybranch Z
mytag Z
EOF
'
test_expect_success 'symbolic-ref completes full ref names' '
test_completion "git symbolic-ref foo refs/" <<-\EOF
refs/heads/main Z
refs/heads/mybranch Z
refs/tags/mytag Z
refs/tags/A Z
EOF
'
test_expect_success PERL 'send-email' '
test_completion "git send-email --cov" <<-\EOF &&
--cover-from-description=Z