"git send-email --git-completion-helper" only prints "format-patch" flags. Make it print "send-email" flags as well. Add a completion test for "send-email --validate", a send-email option. Signed-off-by: Thiago Perrotta <tbperrotta@xxxxxxxxx> --- Hi Carlos, Good catch. Initially I had only moved the options from the script. I am working on another patch (attached) that exhaustively adds all options. At this time, it's still manual, I agree that generating the flags programatically would be even better, but I didn't want to complicate this series too much. Let me know how you would like me to proceed here, I see 3 options: 1. drop the second part of the patch (v3 2/3) completely, only keep the other ones (1/3 and 3/3), which just adds the newline and touches the man page - leave automated flags for another series 2. send v4 with the attached - which exhaustively adds all send-email options to the perl script, while removing the completions from the bash completion script 3. send v4 with the attached and do not touch the current bash completion script (keeping caching as is) contrib/completion/git-completion.bash | 11 +---- git-send-email.perl | 62 ++++++++++++++++++++++++++ t/t9902-completion.sh | 3 ++ 3 files changed, 66 insertions(+), 10 deletions(-) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 4bdd27ddc8..1b73a4dcc0 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -2359,16 +2359,7 @@ _git_send_email () return ;; --*) - __gitcomp_builtin send-email "--annotate --bcc --cc --cc-cmd --chain-reply-to - --compose --confirm= --dry-run --envelope-sender - --from --identity - --in-reply-to --no-chain-reply-to --no-signed-off-by-cc - --no-suppress-from --no-thread --quiet --reply-to - --signed-off-by-cc --smtp-pass --smtp-server - --smtp-server-port --smtp-encryption= --smtp-user - --subject --suppress-cc= --suppress-from --thread --to - --validate --no-validate - $__git_format_patch_extra_options" + __gitcomp_builtin send-email "$__git_format_patch_extra_options" return ;; esac diff --git a/git-send-email.perl b/git-send-email.perl index d1731c1755..7139384f7a 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -114,6 +114,68 @@ sub usage { } sub completion_helper { + my @send_email_flags = qw/ + --8bit-encoding + --annotate + --batch-size + --bcc + --cc + --cc-cmd + --cc-cover + --chain-reply-to + --compose + --compose-encoding + --confirm + --dry-run + --dump-aliases + --envelope-sender + --force + --format-patch + --from + --identity + --in-reply-to + --no-annotate + --no-bcc + --no-cc + --no-cc-cover + --no-chain-reply-to + --no-format-patch + --no-signed-off-by-cc + --no-smtp-auth + --no-suppress-from + --no-thread + --no-to + --no-to-cover + --no-validate + --no-xmailer + --quiet + --relogin-delay + --reply-to + --sendmail-cmd + --signed-off-by-cc + --smtp-auth + --smtp-debug + --smtp-domain + --smtp-encryption + --smtp-pass + --smtp-server + --smtp-server-option + --smtp-server-port + --smtp-ssl + --smtp-ssl-cert-path + --smtp-user + --subject + --suppress-cc + --suppress-from + --thread + --to + --to-cmd + --to-cover + --transfer-encoding + --validate + --xmailer + /; + print "@send_email_flags"; print Git::command('format-patch', '--git-completion-helper'), "\n"; exit(0); } diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index 11573936d5..a4faf64184 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh @@ -2139,6 +2139,9 @@ test_expect_success PERL 'send-email' ' --cover-from-description=Z --cover-letter Z EOF + test_completion "git send-email --val" <<-\EOF && + --validate Z + EOF test_completion "git send-email ma" "main " ' -- 2.33.0