guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Guix search, colors and INSIDE_EMACS


From: Ludovic Courtès
Subject: Re: Guix search, colors and INSIDE_EMACS
Date: Mon, 24 Feb 2020 21:54:04 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hi Pierre,

I’m happy to discuss it further (to some extent at least, because there
are other patches waiting for us to be reviewed :-)), but first, as I
wrote in another message, I think the topic was not consensual and thus
the series wasn’t ready to be pushed.

Pierre Neidhardt <address@hidden> skribis:

> Ludovic Courtès <address@hidden> writes:
>
>>> - Leave colors when INSIDE_EMACS is set.
>>
>> Like Ricardo wrote before, this is not desirable for shell-mode.  Also,
>> all or most GNU command-line tools behave that way.
>
> There might be a misunderstanding because M-x shell supports ANSI
> terminal colors explicitly.  Why disable them then?
>
> Many command line tools print colors properly in M-x shell.  I think
> it's a misfeature to disable them in Emacs; I don't see any benefits.

I understand the Eshell use case.  The shell-mode use case is one I’m
interested in keeping as-is, that is: disable colors when INSIDE_EMACS,
just like Coreutils, GNU grep, etc. do.

>>> - Disable pager hint and display all search results when INSIDE_EMACS is 
>>> set.
>>
>> I have a preference for something that doesn’t fill the screen,
>> especially since the last answers (those that remain visible without
>> scrolling) are the least relevant.  Emacs makes it easier to scroll up
>> and search, but still.
>>
>> Thoughts?
>
> I find that printing just 1 result to be of little use in general.
> So between printing all results and just 1, I have a preference for
> printing all results.  But there are other solutions, see below.

It’s not printing one result; it’s printing as many results as can fit
on the screen.

> Note that `less` does not work well neither in Eshell nor in M-x shell.
> Which is what started this discussion ;)
>
> Another option for M-x shell is to do
>
> guix search foo | cat
>
> which gives us the same result as the patch I've sent, with more typing :(
>
> Eshell has a "smart-scrolling" mode (the point stays at the first prompt
> until validated).
>
> For M-x shell, going to the first result is just one keypress away.

I understand all this.  However, we’re not optimizing just for Eshell
and shell-mode; in fact, I’d argue that Emacs users should just use
Emacs-Guix (we need to add M-x guix-search, actually!).

For regular terminals, I think the two options that work well are:

  1. Print (by default) as much as fits on the screen.

  2. Automatically start a pager.

I went with option #1, which was submitted at
<https://issues.guix.gnu.org/issue/36390>.  The suggestion actually came
from Bruno Haible: <https://issues.guix.gnu.org/issue/35551>.

Just to say that there’s already been some thought put into it, and we
have to carry the baggage of these past discussions now!

> Another option would be to reverse the order of the result: print the
> most relevant result last, so that neither Eshell nor M-x shell have to
> scroll back.

I think UIs generally print the most relevant result first.  It wouldn’t
feel right to me to reverse it.

Thanks!

Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]