completion: commit: complete configured trailer tokens

Since 2daae3d1d1 (commit: add --trailer option, 2021-03-23), 'git
commit' can add trailers to commit messages. To make that feature more
pleasant to use at the command line, update the Bash completion code to
offer configured trailer tokens.

Add a __git_trailer_tokens function to list the configured trailers
tokens, and use it in _git_commit to suggest the configured tokens,
suffixing the completion words with ':' so that the user only has to add
the trailer value.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Philippe Blain
2023-09-07 17:42:31 +00:00
committed by Junio C Hamano
parent 1fc548b2d6
commit c7153fad2d

View File

@ -1677,6 +1677,11 @@ _git_clone ()
__git_untracked_file_modes="all no normal"
__git_trailer_tokens ()
{
git config --name-only --get-regexp trailer.\*.key | awk -F. '{print $2}'
}
_git_commit ()
{
case "$prev" in
@ -1701,6 +1706,10 @@ _git_commit ()
__gitcomp "$__git_untracked_file_modes" "" "${cur##--untracked-files=}"
return
;;
--trailer=*)
__gitcomp_nl "$(__git_trailer_tokens)" "" "${cur##--trailer=}" ":"
return
;;
--*)
__gitcomp_builtin commit
return