Web lists-archives.com

Re: [PATCH v2] completion: use builtin completion for format-patch




On Tue, Oct 30, 2018 at 7:39 AM Denton Liu <liu.denton@xxxxxxxxx> wrote:
>
> This patch offloads completion functionality for format-patch to
> __gitcomp_builtin. In addition to this, send-email was borrowing some
> completion options from format-patch so those options are moved into
> send-email's completions.
>
> Signed-off-by: Denton Liu <liu.denton@xxxxxxxxx>
> ---
>
> I ran t9902-completion.sh on this patch and it seems to pass. Thus, this
> should address the concerns about losing some completion options in
> send-email.
>
> ---
>  contrib/completion/git-completion.bash | 34 +++++++++++---------------
>  1 file changed, 14 insertions(+), 20 deletions(-)
>
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index d63d2dffd..cb4ef6723 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1531,15 +1531,6 @@ _git_fetch ()
>         __git_complete_remote_or_refspec
>  }
>
> -__git_format_patch_options="
> -       --stdout --attach --no-attach --thread --thread= --no-thread
> -       --numbered --start-number --numbered-files --keep-subject --signoff
> -       --signature --no-signature --in-reply-to= --cc= --full-index --binary
> -       --not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
> -       --inline --suffix= --ignore-if-in-upstream --subject-prefix=
> -       --output-directory --reroll-count --to= --quiet --notes
> -"
> -
>  _git_format_patch ()
>  {
>         case "$cur" in
> @@ -1550,7 +1541,7 @@ _git_format_patch ()
>                 return
>                 ;;
>         --*)
> -               __gitcomp "$__git_format_patch_options"
> +               __gitcomp_builtin format-patch

We do want to keep some extra options back because __gitcomp_builtin
cannot show all supported options of format-patch. The reason is a
subset of options is handled by setup_revisions() which does not have
--git-completion-helper support.

> @@ -2080,16 +2071,19 @@ _git_send_email ()
>                 return
>                 ;;
>         --*)
> -               __gitcomp "--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_options"
> +               __gitcomp "--all --annotate --attach --bcc --binary --cc --cc= --cc-cmd
> +                       --chain-reply-to --compose --confirm= --cover-letter --dry-run
> +                       --dst-prefix= --envelope-sender --from --full-index --identity
> +                       --ignore-if-in-upstream --inline --in-reply-to --in-reply-to=
> +                       --keep-subject --no-attach --no-chain-reply-to --no-prefix
> +                       --no-signature --no-signed-off-by-cc --no-suppress-from --not --notes
> +                       --no-thread --no-validate --numbered --numbered-files
> +                       --output-directory --quiet --reply-to --reroll-count --signature
> +                       --signed-off-by-cc --signoff --smtp-encryption= --smtp-pass
> +                       --smtp-server --smtp-server-port --smtp-user --src-prefix=
> +                       --start-number --stdout --subject --subject-prefix= --suffix=
> +                       --suppress-cc= --suppress-from --thread --thread= --to --to=
> +                       --validate"

I have no comment about this. In an ideal world, sendemail.perl could
be taught to support --git-completion-helper but I don't think my
little remaining Perl knowledge (or time) is enough to do it. Perhaps
this will do. I don't know.
-- 
Duy