From: "Shawn O. Pearce" <spearce@spearce.org>
To: Teemu Likonen <tlikonen@iki.fi>
Cc: git@vger.kernel.org, gitster@pobox.com
Subject: Re: [PATCH v2] bash: Teach the bash completion about 'git send-email'
Date: Tue, 15 Jul 2008 06:31:53 +0000 [thread overview]
Message-ID: <20080715063153.GA3638@spearce.org> (raw)
In-Reply-To: <20080715063034.GA3316@mithlond.arda.local>
Teemu Likonen <tlikonen@iki.fi> wrote:
> Add the following long options to be completed with 'git send-email':
>
> --bcc --cc --cc-cmd --chain-reply-to --compose --dry-run
> --envelope-sender --from --identity --in-reply-to
> --no-chain-reply-to --no-signed-off-by-cc --no-suppress-from
> --no-thread --quiet --signed-off-by-cc --smtp-pass --smtp-server
> --smtp-server-port --smtp-ssl --smtp-user --subject --suppress-cc
> --suppress-from --thread --to
>
> Short ones like --to and --cc are not usable for actual completion
> because of the shortness itself and because there are longer ones which
> start with same letters (--thread, --compose). It's still useful to have
> these shorter options _listed_ when user presses TAB key after typing
> two dashes. It gives user an idea what options are available (and --to
> and --cc are probably the most commonly used).
>
> Signed-off-by: Teemu Likonen <tlikonen@iki.fi>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Thanks for the quick reply cleaning up the minor details. :)
> Shawn O. Pearce wrote (2008-07-15 04:38 +0000):
>
> > Don't use __git_complete_file here. As far as I remember,
> > git-send-email does not accept "origin/maint:some.patch" as an email
> > to extract from Git prior to sending. It looks for files in the local
> > filesystem. So you want standard bash completion for anything not
> > starting with --.
> >
> > Just use COMPREPLY=() at the end. See _git_am for an example.
>
> Done. And thanks.
>
> > > +complete -o default -o nospace -F _git_send_email git-send-email
>
> > Hmm. With dash form commands gone in 1.6 we should remove these.
> >
> > But I suspect this completion patch could be shipped in the next 1.5.6
> > maint release as its really quite trivial. Junio, any comment on
> > that?
>
> This is a for-1.6 version so the completion for dashed command
> (git-send-email) is dropped. I see Shawn already sent a patch which
> drops all those.
>
>
>
> contrib/completion/git-completion.bash | 19 +++++++++++++++++++
> 1 files changed, 19 insertions(+), 0 deletions(-)
>
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index d268e6f..48ebbf7 100755
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -905,6 +905,24 @@ _git_rebase ()
> __gitcomp "$(__git_refs)"
> }
>
> +_git_send_email ()
> +{
> + local cur="${COMP_WORDS[COMP_CWORD]}"
> + case "$cur" in
> + --*)
> + __gitcomp "--bcc --cc --cc-cmd --chain-reply-to --compose
> + --dry-run --envelope-sender --from --identity
> + --in-reply-to --no-chain-reply-to --no-signed-off-by-cc
> + --no-suppress-from --no-thread --quiet
> + --signed-off-by-cc --smtp-pass --smtp-server
> + --smtp-server-port --smtp-ssl --smtp-user --subject
> + --suppress-cc --suppress-from --thread --to"
> + return
> + ;;
> + esac
> + COMPREPLY=()
> +}
> +
> _git_config ()
> {
> local cur="${COMP_WORDS[COMP_CWORD]}"
> @@ -1376,6 +1394,7 @@ _git ()
> rebase) _git_rebase ;;
> remote) _git_remote ;;
> reset) _git_reset ;;
> + send-email) _git_send_email ;;
> shortlog) _git_shortlog ;;
> show) _git_show ;;
> show-branch) _git_log ;;
> --
> 1.5.6.3.316.g01fc
>
--
Shawn.
prev parent reply other threads:[~2008-07-15 6:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-14 8:21 [PATCH] bash: Add long option completion for 'git send-email' Teemu Likonen
2008-07-15 4:38 ` Shawn O. Pearce
2008-07-15 4:49 ` Junio C Hamano
2008-07-15 4:58 ` Shawn O. Pearce
2008-07-15 6:30 ` [PATCH v2] bash: Teach the bash completion about " Teemu Likonen
2008-07-15 6:31 ` Shawn O. Pearce [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080715063153.GA3638@spearce.org \
--to=spearce@spearce.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=tlikonen@iki.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.