From: Junio C Hamano <gitster@pobox.com>
To: "Rubén Justo" <rjusto@gmail.com>
Cc: Git List <git@vger.kernel.org>,
Dragan Simic <dsimic@manjaro.org>, Jeff King <peff@peff.net>
Subject: Re: [PATCH v3 0/6] use the pager in 'add -p'
Date: Sun, 02 Jun 2024 10:11:49 -0700 [thread overview]
Message-ID: <xmqqttib8e22.fsf@gitster.g> (raw)
In-Reply-To: <xmqqwmn79u98.fsf@gitster.g> (Junio C. Hamano's message of "Sun, 02 Jun 2024 09:36:35 -0700")
Junio C Hamano <gitster@pobox.com> writes:
> The 'g' and '/' commands take _mandatory_ arguments, but we do not
> even mention it in the help text. But we need to say something for
> this new thing, because it is _optional_ and if you do not give a
> program, it does not ask.
By the way, although I personally do not have much sympathy to those
who set it, in the presence of interactive.singleKey configuration
variable, a command that takes optional argument may turn out to be
a mistake, as the user cannot give the argument even if they wanted
to, when the configuration variable is set to true. To help them,
we'd probably need something like the following to allow them to
optionally set their own program, like the following:
1. read the command, notice that it begins with '|'.
2. if it has <program> after it, call it <program> and jump to 5.
3. if it does not have <program> after it, but if single key
operation is in effect, give the user a chance to give <program>
by prompting. Call the answer to the prompt <program>. If it
is not an empty string, jump to 5.
4. at this point, we have <program> that is empty as given by the
user. Replace the <program> with the value we remembered from
step 6. during the last use of the '|' command.
5. if <program> is all whitespace, replace it with an empty string.
6. remember the value of <program> (so that you can reuse it next
time the user says '|' and without <program>), and call the
"set-custom-pager" thing with <program> (this design assumes
that "set-custom-pager" thing uses the GIT_PAGER when fed an
empty string).
7. spawn the program set by "set-custom-pager", and feed our output
to it.
So the end-user observable behaviour would become
* There is the "default" program, initially their pager, but after
they use the '|' command, we remember the last program they used
during the session and reuse it when they tell us to do so.
* For singlekey folks, typing '|' will give them a prompt. They
can give an empty string and spawn the "default" thing. They can
give " " plus <RET> to reset the "default" to GIT_PAGER and use
it. Or they can give <program> plus <RET> to use it and update
the "default".
* For the rest of us, typing "|" plus <RET> will spawn the
"default" thing. Typing "|<program>" plus <RET> will use the
<program> and update the "default". Typing "| " plus <RET> will
reset the "default" to GIT_PAGER and use it.
which is quite straight-forward and consistent between the two
camps.
next prev parent reply other threads:[~2024-06-02 17:11 UTC|newest]
Thread overview: 113+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-19 7:06 [PATCH 0/5] use the pager in 'add -p' Rubén Justo
2024-05-19 7:10 ` [PATCH 1/5] add-patch: test for 'p' command Rubén Justo
2024-05-19 7:12 ` [PATCH 2/5] pager: do not close fd 2 unnecessarily Rubén Justo
2024-05-20 19:14 ` Junio C Hamano
2024-05-20 22:33 ` Rubén Justo
2024-05-21 20:57 ` Junio C Hamano
2024-05-21 21:35 ` Rubén Justo
2024-05-21 22:00 ` Junio C Hamano
2024-05-22 17:19 ` Rubén Justo
2024-05-22 17:40 ` Junio C Hamano
2024-05-26 6:48 ` Rubén Justo
2024-05-26 21:26 ` Junio C Hamano
2024-05-19 7:13 ` [PATCH 3/5] pager: introduce wait_for_pager Rubén Justo
2024-05-19 7:14 ` [PATCH 4/5] test-terminal: introduce --no-stdin-pty Rubén Justo
2024-05-19 7:14 ` [PATCH 5/5] add-patch: render hunks through the pager Rubén Justo
2024-05-20 19:30 ` Junio C Hamano
2024-05-20 19:45 ` Dragan Simic
2024-05-20 22:35 ` Rubén Justo
2024-05-20 23:54 ` Dragan Simic
2024-05-21 19:56 ` Rubén Justo
2024-05-21 7:07 ` Jeff King
2024-05-21 19:59 ` Rubén Justo
2024-05-23 9:06 ` Jeff King
2024-05-23 14:00 ` Junio C Hamano
2024-05-23 14:18 ` Dragan Simic
2024-05-23 23:04 ` Junio C Hamano
2024-05-23 23:28 ` Dragan Simic
2024-05-23 23:43 ` Dragan Simic
2024-05-23 23:54 ` Junio C Hamano
2024-05-23 23:57 ` Dragan Simic
2024-05-25 4:54 ` Jeff King
2024-05-23 22:25 ` Rubén Justo
2024-05-23 23:03 ` Dragan Simic
2024-05-20 22:47 ` Rubén Justo
2024-05-20 23:18 ` Junio C Hamano
2024-05-20 23:27 ` Rubén Justo
2024-05-21 20:49 ` [PATCH v2 0/5] use the pager in 'add -p' Rubén Justo
2024-05-21 20:51 ` [PATCH v2 1/5] add-patch: test for 'p' command Rubén Justo
2024-05-21 20:52 ` [PATCH v2 2/5] pager: do not close fd 2 unnecessarily Rubén Justo
2024-05-21 20:52 ` [PATCH v2 3/5] pager: introduce wait_for_pager Rubén Justo
2024-05-21 20:52 ` [PATCH v2 4/5] test-terminal: introduce --no-stdin-pty Rubén Justo
2024-05-21 20:52 ` [PATCH v2 5/5] add-patch: render hunks through the pager Rubén Justo
2024-05-22 8:09 ` Dragan Simic
2024-05-22 18:47 ` Junio C Hamano
2024-05-22 21:23 ` Rubén Justo
2024-05-22 21:27 ` Dragan Simic
2024-06-02 15:38 ` [PATCH v3 0/6] use the pager in 'add -p' Rubén Justo
2024-06-02 15:42 ` [PATCH v3 1/6] add-patch: test for 'p' command Rubén Justo
2024-06-02 15:42 ` [PATCH v3 2/6] pager: do not close fd 2 unnecessarily Rubén Justo
2024-06-02 15:43 ` [PATCH v3 3/6] pager: introduce wait_for_pager Rubén Justo
2024-06-02 15:43 ` [PATCH v3 4/6] pager: introduce setup_custom_pager Rubén Justo
2024-06-02 15:43 ` [PATCH v3 5/6] test-terminal: introduce --no-stdin-pty Rubén Justo
2024-06-02 15:44 ` [PATCH v3 6/6] add-patch: introduce the command '|' Rubén Justo
2024-06-02 16:36 ` [PATCH v3 0/6] use the pager in 'add -p' Junio C Hamano
2024-06-02 17:11 ` Junio C Hamano [this message]
2024-06-02 17:33 ` Rubén Justo
2024-06-02 17:13 ` Rubén Justo
2024-06-02 17:46 ` Dragan Simic
2024-06-03 9:03 ` Junio C Hamano
2024-06-03 10:21 ` Dragan Simic
2024-06-03 15:28 ` Junio C Hamano
2024-06-04 17:34 ` Dragan Simic
2024-06-02 17:36 ` Dragan Simic
2024-06-03 16:01 ` Junio C Hamano
2024-06-04 17:41 ` Dragan Simic
2024-06-04 17:42 ` Dragan Simic
2024-06-03 20:19 ` Rubén Justo
2024-06-04 18:13 ` Dragan Simic
2024-06-03 20:35 ` [PATCH v4 " Rubén Justo
2024-06-03 20:38 ` [PATCH v4 1/6] add-patch: test for 'p' command Rubén Justo
2024-06-03 20:38 ` [PATCH v4 2/6] pager: do not close fd 2 unnecessarily Rubén Justo
2024-06-04 15:50 ` Junio C Hamano
2024-06-03 20:38 ` [PATCH v4 3/6] pager: introduce wait_for_pager Rubén Justo
2024-06-04 10:00 ` Phillip Wood
2024-06-04 16:29 ` Junio C Hamano
2024-06-05 22:03 ` Rubén Justo
2024-06-04 16:25 ` Junio C Hamano
2024-06-03 20:38 ` [PATCH v4 4/6] pager: introduce setup_custom_pager Rubén Justo
2024-06-04 16:43 ` Junio C Hamano
2024-06-03 20:38 ` [PATCH v4 5/6] test-terminal: introduce --no-stdin-pty Rubén Justo
2024-06-04 10:05 ` Phillip Wood
2024-06-04 10:33 ` Jeff King
2024-06-05 15:39 ` Junio C Hamano
2024-06-06 8:24 ` Jeff King
2024-06-05 22:50 ` Rubén Justo
2024-06-06 8:27 ` Jeff King
2024-06-09 7:26 ` Rubén Justo
2024-06-03 20:38 ` [PATCH v4 6/6] add-patch: introduce the command '|' Rubén Justo
2024-06-04 17:12 ` Junio C Hamano
2024-06-04 20:05 ` Dragan Simic
2024-06-05 5:16 ` Junio C Hamano
2024-06-04 10:17 ` [PATCH v3 0/6] use the pager in 'add -p' Jeff King
2024-06-04 15:32 ` Junio C Hamano
2024-06-05 9:09 ` Jeff King
2024-06-05 13:21 ` Phillip Wood
2024-06-08 5:54 ` Dragan Simic
2024-06-09 7:44 ` Rubén Justo
2024-06-09 7:57 ` Dragan Simic
2024-06-10 19:09 ` Rubén Justo
2024-06-10 21:02 ` Dragan Simic
2024-06-10 14:09 ` Phillip Wood
2024-06-10 16:13 ` Junio C Hamano
2024-06-10 19:14 ` Rubén Justo
2024-06-10 19:56 ` Junio C Hamano
2024-06-10 21:08 ` Dragan Simic
2024-06-10 19:28 ` Dragan Simic
2024-06-10 20:08 ` Junio C Hamano
2024-06-10 21:16 ` Dragan Simic
2024-06-09 14:29 ` phillip.wood123
2024-06-09 17:20 ` Dragan Simic
2024-06-10 8:27 ` Phillip Wood
2024-06-10 9:09 ` Dragan Simic
2024-06-05 17:24 ` Junio C Hamano
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=xmqqttib8e22.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=dsimic@manjaro.org \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
--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).