git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Rubén Justo" <rjusto@gmail.com>
Cc: Git List <git@vger.kernel.org>
Subject: Re: [PATCH 3/4] completion: reflog with implicit "show"
Date: Tue, 20 Feb 2024 17:46:20 -0800	[thread overview]
Message-ID: <xmqqwmqyr3mb.fsf@gitster.g> (raw)
In-Reply-To: <dd106d87-3363-426a-90a2-16e1f2d04661@gmail.com> ("Rubén Justo"'s message of "Fri, 26 Jan 2024 21:20:07 +0100")

Rubén Justo <rjusto@gmail.com> writes:

>> So, when we see something that could be a subcommand we complete it
>> as a subcommand and return.  In your example, how should
>> 
>>     $ git reflog def<TAB>
>> 
>> work?  We try to see if there is a subcommand that begins with
>> "def", we see nothing matching, and then run __git_complete_refs?
>> What if the branch you created earlier were not named "default" but,
>> say, "delmonte", and you did "git reflog del<TAB>"?  Shouldn't the
>> user be offered "delete" and "delmonte" as potential completions?
>> 
>> >  __git_send_email_confirm_options="always never auto cc compose"
>> > diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
>> > index aa9a614de3..231e17f378 100755
>> > --- a/t/t9902-completion.sh
>> > +++ b/t/t9902-completion.sh
>> > @@ -2618,6 +2618,14 @@ test_expect_success 'git clone --config= - value' '
>> >  	EOF
>> >  '
>> >  
>> > +test_expect_success 'git reflog show' '
>> > +	test_when_finished "git checkout -" &&
>> > +	git checkout -b shown &&
>> > +	test_completion "git reflog sho" "show " &&
>> 
>> IOW, shouldn't this offer both show and shown?
>
> What should we do?

I would imagine that we should make the above offer both "show"
(because it can be what the user meant) and "shown" (because it can
also be what the user meant)?  But thinking of it again, because
"show" is a prefix of "shown", this should offer "show" and then
another <TAB> would offer "show" and "shown".  At least, that is
what I would expect from the usual bash completion behaviour, which
would look like:

    $ mkdir /var/tmp/scratch && cd /var/tmp/scratch
    $ : >show 2>shown
    $ echo sho<TAB>

The <TAB> makes the above line expand to

    $ echo show

and place the curser immediately after 'w' (without a space after it).
Giving another <TAB> at this point offers two possible candidates.

    $ echo show<TAB>
    show shown

So, I'd expect a similar completion to happen, i.e.

    $ git reflog sho<TAB>
-->
    $ git reflog show

because there are two candidates, "show" and "shown", and I can type
another <TAB> at that point to see the two candidates.

    $ git reflog show<TAB>
    show shown

If the branch name were "shot" instead of "shown", then the possible
choices would become "show" and "shot", so we'd skip one step from
the above and immediately get the two candidates against "sho<TAB>".

    $ git reflog sho<TAB>
    shot show

That is what I would expect.    

Thanks.

  reply	other threads:[~2024-02-21  1:46 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-26 12:46 [PATCH 0/4] completion for git-reflog show Rubén Justo
2024-01-26 12:51 ` [PATCH 1/4] completion: introduce __gitcomp_subcommand Rubén Justo
2024-01-26 17:26   ` Junio C Hamano
2024-01-26 20:09     ` Rubén Justo
2024-01-26 20:34       ` Junio C Hamano
2024-01-26 12:51 ` [PATCH 2/4] completion: introduce __git_find_subcommand Rubén Justo
2024-01-26 17:30   ` Junio C Hamano
2024-01-27 13:20     ` Rubén Justo
2024-01-26 12:53 ` [PATCH 3/4] completion: reflog with implicit "show" Rubén Justo
2024-01-26 17:57   ` Junio C Hamano
2024-01-26 20:20     ` Rubén Justo
2024-02-21  1:46       ` Junio C Hamano [this message]
2024-02-21 18:06         ` Rubén Justo
2024-02-29 19:00           ` Rubén Justo
2024-02-29 19:22             ` Junio C Hamano
2024-01-26 12:53 ` [PATCH 4/4] completion: reflog show <log-options> Rubén Justo
2024-03-02 14:30 ` [PATCH v2 0/5] completion for git-reflog show Rubén Justo
2024-03-02 14:37   ` [PATCH v2 1/5] completion: reflog with implicit "show" Rubén Justo
2024-03-02 15:50   ` [PATCH v2 3/5] completion: reflog show <log-options> Rubén Justo
2024-03-02 15:51   ` [PATCH v2 2/5] completion: introduce __git_find_subcommand Rubén Justo
2024-03-02 15:52   ` [PATCH v2 4/5] completion: factor out __git_resolve_builtins Rubén Justo
2024-03-02 15:52   ` [PATCH v2 5/5] completion: reflog subcommands and options Rubén Justo

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=xmqqwmqyr3mb.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=rjusto@gmail.com \
    /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).