Subject: 31.0.50; [PATCH] eglot-code-action-suggestion doesn't call the callback function in the original buffer

From: Yuan Fu <[email-masked]>
Date: Wed, 21 May 2025 00:42:21 -0700

X-Debbugs-CC: [email-masked]

Copying from the commit message:

Some minor modes adds their own eldoc display function to
'eldoc-display-functions' hook buffer-locally.  So when eldoc
uses 'eldoc-display-functions' to display docs, it should use
the buffer-local value of the hook.

In 'eldoc--invoke-strategy', the code that runs
'eldoc-display-functions' hook is wrapped in a callback function
that eventually gets passed to each documentation function in
'eldoc-documentation-functions'. So now it's the documentation
functions' responsibility to call the eldoc callback in the
original buffer.

All the eglot documentation functions indeed do that, using
'eglot--when-buffer-window' to switch to the original buffer when
calling the eldoc callback. Except for
'eglot-code-action-suggestion'.

This patch fixes that.

This bug was originally reported on eldoc-box [1]. The user
found that eldoc-box's display function are rarely used, while
the minor mode is turned on. This patch fixes the issue.

[1] https://github.com/casouri/eldoc-box/issues/126#issuecomment-2896611278

I think we should fix the eldoc callback function so it always uses the
hook value of the hook in the original buffer; at the very least we
should document the pitfall in the docstring of
eldoc-documentation-functions. João, WDYT?

Yuan