Subject: Re: bug#62029: 29.0.60; Allow users to customize eldoc buffer separator

From: Dmitry Gutov <[email-masked]>
Date: Wed, 12 Apr 2023 04:38:28 +0300

On 11/04/2023 14:25, João Távora wrote:
> Dmitry Gutov <[email-masked]> writes:
> 
>> On 30/03/2023 11:13, João Távora wrote:
>>
>>>>> You do need to set eldoc-documentation-strategy to
>>>>> eldoc-documentation-compose though (this should really
>>>>> be the default).
>>>>
>>>> Huh, I wonder why I can see both flymake + eglot in the eldoc doc
>>>> buffer when my eldoc-documentation-strategy is the default value?
>>> Because Eglot changes eldoc-documentation-strategy automatically.
>>> It
>>> shouldn't but the default value is really bad.
>>> The reason the default value is historic.  Previously, there was a
>>> single producer of ElDoc, and only in Emacs Lisp.  It would decide
>>> whether to show variable _or_ function doc, even if a given symbol had
>>> more than one meaning.  So what's the problem with setting
>>> eldoc-documentation-strategy something like e-d-compose, you ask.
>>> Well, because of the default value of
>>> eldoc-echo-area-use-multiline-p,
>>> people would be seeing "bouncing" in the echo area while editing Elisp,
>>> which is something they are not used to.
>>> I think a very good solution is to set e-d-strategy to e-d-compose
>>> globally and e-e-a-use-multiline-p to 1 in emacs-lisp-mode.
>>> I once proposed this in this bug tracker, but the message was
>>> garbled by
>>> some side discussion, and I gave up.  And ElDoc wasn't so powerful then.
>>
>> Last time I tested Eglot's behavior (recently),
> 
> How "recently"?  Does it have this commit?
> 
> commit d00e05daa96700860dbb9dc6527105e464ffb960
> Author: João Távora <[email-masked]>
> Date:   Sat Mar 25 19:53:14 2023 +0000
> 
>      Eglot: take advantage of new Eldoc options for signature doc
>      
>      Only echo the "active signature", send all the other signatures for
>      the *eldoc* buffer.
>      
>      * lisp/progmodes/eglot.el (eglot--sig-info): Rework protocol.
>      (eglot-signature-eldoc-function): Rework.
> 
> This is also in the latest released Eglot 1.14, btw.

I retested it just yesterday (and now as well), to take that screenshot.

But that was Emacs 29. With current master, it is indeed better.

>> Eldoc took away half the window to display the overloads of a
>> function's signature. Screenshot attached.
> 
> This is exactly what I've been working on and discussing with Yuan and
> others, so I'm pretty familiar with the situation.

>> That doesn't look like good behavior to me, no matter the language or
>> IDE package used.
> 
> I agree, and this is why I changed it.  Let's hope noone complains
> (unlikely, but possible, as this changed longstanding behaviour).
> 
> But here I was describing something not related to Eglot at all, rather
> elisp-mode.el.  Do you have something to say about that?  Did you try
> the patch I showed Yuan?

I have applied it. What should I be looking at?