Hello Ruben,
On 2024-06-02 17:38, Rubén Justo wrote:
This iteration, v3, introduces a new command: '|', suggested by Junio,
instead of the 'P' command proposed in the previous iteration.
This allows us to use the pager:
(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,s,e,p,|,?]? |
But also to use other programs, like:
(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,s,e,p,|,?]? | head
Or:
(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,s,e,p,|,?]? | grep term
Hopefully, we'll find a way to avoid sending ANSI codes, on demand,
without disabling it entirely with color.ui=never or any other global
option. To make this usable:
(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,s,e,p,|,?]? | vim -
However, the current functionality meets my current needs, so I'm happy
with it.
The way I see it, using "| <program>" should follow the de facto rules
already established by the "--color=auto" command-line option in
multiple
utilities. Thus, when piping to a custom program, the escape codes that
perform the coloring should be stripped.
This, a new 'interactive.pipeCommand' setting, or a new switch: 'add
-P',
are left for discussing in, hopefully, a future series.
One final note; I preferred to model the help text this way:
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
g - select a hunk to go to
/ - search for a hunk matching the given regex
s - split the current hunk into smaller hunks
e - manually edit the current hunk
p - print the current hunk
| - pipe the current hunk to the pager, or |<program> to use a
program'
? - print help
I also like this form better, but I think wording could be improved.
I'll think a bit more about it, maybe something like this:
| - use pager to show the current hunk, or use |<program> to
customize
Also, what's the single quote doing after "use a program"?
Instead of:
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
g - select a hunk to go to
/ - search for a hunk matching the given regex
s - split the current hunk into smaller hunks
e - manually edit the current hunk
p - print the current hunk
|[program] - pipe the current hunk to a program, the pager if
none...
? - print help
Because I believe it reads better by maintaining a single character
before the dash. But I am not opposed to the latter.