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.
next prev parent 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).