git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Shawn O. Pearce" <spearce@spearce.org>
Cc: David Rhodes Clymer <david@zettazebra.com>, git@vger.kernel.org
Subject: Re: Custom git completion
Date: Fri, 29 Jan 2010 09:42:48 -0800	[thread overview]
Message-ID: <7v4om4kdt3.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <20100129151127.GA21821@spearce.org> (Shawn O. Pearce's message of "Fri\, 29 Jan 2010 07\:11\:27 -0800")

"Shawn O. Pearce" <spearce@spearce.org> writes:

> David Rhodes Clymer <david@zettazebra.com> wrote:
>> Unless I read it incorrectly, the completion script included with
>> git-core does not make it easy for users to write completion scripts
>> for custom git commands. I can extend git itself by creating a command
>> "git-foo", and placing it in my path.
>
> git config --global alias.foo /home/me/bin/my-git-foo
>
> git foo will now complete correctly.  No need to modify the
> completion code.

Yes.  Aliases and custom subcommands are found from 'git help" output just
fine (you need to install new subcommand in exec-path).

But.

How does the completion code learn what options and arguments such aliases
and subcommands (e.g. "git foo") take without being told?

An alias that uses another git subcommand (i.e. the ones that do not start
with a bang "!") seems to be handled correctly, but one of my aliases is
this:

    [alias]
	lgm = "!sh -c 'GIT_NOTES_REF=refs/notes/amlog git log \"$@\" || :' -"

and the completion code doesn't (and it is unfair to expect it to) notice
that "git log" is run under the hood.  I cannot say "git lgm sp/<TAB>" and
choose from the list of topics from you.

  reply	other threads:[~2010-01-29 17:43 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-29 12:57 Custom git completion David Rhodes Clymer
2010-01-29 15:11 ` Shawn O. Pearce
2010-01-29 17:42   ` Junio C Hamano [this message]
2010-01-29 17:59     ` Shawn O. Pearce
2010-01-29 18:02       ` Junio C Hamano
2010-01-29 19:06         ` [PATCH] bash: support user-supplied completion scripts for user's git commands SZEDER Gábor
2010-01-29 19:13           ` Shawn O. Pearce
2010-01-29 20:00             ` SZEDER Gábor
2010-01-29 20:04               ` Shawn O. Pearce
2010-01-31 19:19                 ` SZEDER Gábor
2010-02-23 21:02                   ` [PATCH 0/4] bash: support user-supplied completion scripts for custom git commands and aliases SZEDER Gábor
2010-02-23 21:02                     ` [PATCH 1/4] bash: improve aliased command recognition SZEDER Gábor
2010-02-23 22:11                       ` Junio C Hamano
2010-02-24  1:04                         ` SZEDER Gábor
2010-02-24  2:56                           ` Junio C Hamano
2010-02-23 21:02                     ` [PATCH 2/4] bash: support user-supplied completion scripts for user's git commands SZEDER Gábor
2010-02-23 21:02                     ` [PATCH 3/4] bash: support user-supplied completion scripts for aliases SZEDER Gábor
2010-02-23 21:03                     ` [PATCH 4/4] bash: completion for gitk aliases SZEDER Gábor
2010-01-29 20:32           ` [PATCH] bash: support user-supplied completion scripts for user's git commands Junio C Hamano
2010-02-26 15:27             ` SZEDER Gábor
2010-02-26 20:04               ` Junio C Hamano
2010-02-26 20:17                 ` Shawn O. Pearce
2010-01-30 23:34           ` David Rhodes Clymer
2010-01-30 23:03       ` Custom git completion David Rhodes Clymer
2010-01-30 23:00   ` David Rhodes Clymer

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=7v4om4kdt3.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=david@zettazebra.com \
    --cc=git@vger.kernel.org \
    --cc=spearce@spearce.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).