emacs-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] (icomplete-vertical-mode): Add support for affixations and,


From: Dmitry Gutov
Subject: Re: [PATCH] (icomplete-vertical-mode): Add support for affixations and, annotations
Date: Wed, 2 Jun 2021 15:31:34 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1

On 02.06.2021 14:33, João Távora wrote:
On Wed, Jun 2, 2021 at 12:28 PM Dmitry Gutov <dgutov@yandex.ru> wrote:

It waits before fetching completions if input it too short. To save on
CPU usage or whatever.

Makes sense.  Even though it can be interrupted, doesn't mean we
should start spinning up fans.

OTOH, ido-mode has lived with the "spinning up fans" behavior for ages, and we don't hear much complaints about that. Or fan noise, really.

The proposed change doesn't add any latency. And it would be helpful to
have it working OOTB. But maybe disable if the user customizes the delay
to be higher.

Indeed it doesn't, just tried it. So I have even less objection to doing it.
Do you have a take on the reasons for this `icomplete-tidy` call in
pre-command-hook?

All the justifications for the current behavior you have come up with already, I suppose. Here and in the related Company discussion.

Simpler mental model, a guarantee of no "inconsistent" display, I suppose. But the flicking is real annoying, it's one of the things that has stopped my from migrating to fido-mode (somewhat lower performance is the other).

Anyway, the weirdness (and less flickering) could be solved by
replacing xx/xx with of the same length ??/?? instead of deleting the
overlay outright. But I'm fine with the weirdness too, to be honest.
My main concern was typing latency, and it doesn't happen.

It might make sense to keep them at the previous values, to emphasize that the output simply hasn't been updated yet. And to keep the prompt from moving around twice.

As long as the delay is not too high (meaning, we do make it lower than 100ms), that behavior looks natural enough. The user just gets used to "asynchronous" updates.

Here's one edge case that might warrant some looking into:

- fido-mode on (but not -vertical-mode).
- Have, like, only 2 buffers open.
- C-x b

Start typing an existing buffer's name, in the way that would create a unique prefix match. icomplete will render it with cutoff prefix, like

  ico[mplete.el]

where "ico" is input. If I backspace and type "o" again, there will be an interval of time when two "o" will be shown. That looks kinda weird, but probably still better than having it blink. Hopefully, this behavior could still be improved, though.



reply via email to

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