Subject: Re: bug#43103: 28.0.50; Default ElDoc composition strategy in Elisp mode (eldoc-documentation-strategy)

From: João Távora <[email-masked]>
Date: Sun, 30 Aug 2020 16:15:21 +0100

Eli Zaretskii <[email-masked]> writes:

>> From: João Távora <[email-masked]>
>> Cc: [email-masked],  [email-masked],  [email-masked]
>> Date: Sat, 29 Aug 2020 21:13:31 +0100
>> 
>> I will agree with you that displaying the transient error
>> on those situations is alarmist and not very useful, but it's better
>> fixed by adjusting 'flymake-no-changes-timeout'
>
> If we are okay with a large timeout (like 1 sec at least), then maybe
> it's fine.

I'm okay with a 1 sec timeout for flymake-no-changes-timeout, though
before changing that default I'd first pay attention to the feedback of
Flymake+ElDoc users (as you know, Flymake isn't on by default).

Personally, as a Flymake user, I'm not very bothered by the alarmist
messages.  They're very similar to what until very recently happened
with the "add a quote" situation (the one that
`jit-lock-antiblink-grace` fixed).  Other modes (and other editors,
IIRC) will visually annotate the transient erroneous state as the user
is typing "new code".  Though, granted, we shouldn't compare ourselves
with those inferior kind.

>> Anyway, from your statement, it seems you'd be OK (or at least find less
>> problematic) that the two Flymake-unrelated lines:
>> 
>>     eldoc-idle-delay: Number of seconds of idle time to wait before printing.
>>     run-with-idle-timer: (SECS REPEAT FUNCTION &rest ARGS)  [SECS is boldface]
>> 
>> Being shown when point hovers on the second atom of the form
>> 
>>     (run-with-idle-timer eldoc-idle-delay nil ...)
>> 
>> ?
>
> Expect annoying users due to resizing of mini-window.

Yes, and this is why I mentioned eldoc-echo-area-use-multiline-p in my
original message.  It is the current way to control this (at least
before I propose a overhaul of the ElDoc display system).

Its default and original value is `truncate-sym-name-if-fit`, which (but
for one detail) basically amounts to `t` or "yes, do use multiple
lines".  So we could

1. greet these annoyed users with this fact and tell
them to set eldoc-echo-area-use-multiline-p to nil or 1

2. set it to such a value by default in emacs-lisp-mode

3. wait for the aforementioned overhaul to somehow give us better
perspective before doing the work of this bug report (i.e. switch to
eldoc-documentation-compose in emacs-lisp-mode).

At any rate, as I wrote earlier:

- the Flymake Eldoc source is last in the list, so it will be the one
edited out if eldoc-echo-area-use-multiline-p is set to nil.  In
practice this would amount to no immediately visible change in
behaviour;

- even if eldoc-echo-area-use-multiline-p is set to nil, users can still
get to all the info collecte by ElDoc with the new
`eldoc-documentation-compose` strategy by pressing M-x eldoc-doc-buffer

Hope this clarifies things,
João