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

From: João Távora <[email-masked]>
Date: Tue, 11 Apr 2023 12:25:30 +0100

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.

> 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?

João