Subject: bug#47388: 27.1; eldoc-documentation-function is ignore in updated eldoc

From: Alex Branham <[email-masked]>
Date: Sun, 28 Mar 2021 07:23:47 -0400

On Sat 27 Mar 2021 at 12:53, João Távora <[email-masked]> wrote:

> I'm not sure you're improving much here.  My idea is that,
> if you find eldoc-documentation-functions (plural) to be bound you
> may need to check that eldoc-documentation-strategy (or
> eldoc-documentation-function (singular)) ISN'T #ignore and
> buffer-locally adjust it accordingly to something of your preference
> or your users' preference.

Thanks! It sounds like the below is what you're suggesting modes do in
order to support all the possible eldoc+Emacs versions, let me know if
I've misunderstood.

(if (not (boundp 'eldoc-documentation-functions))
    ;; old eldoc
    (add-function :before-until (local 'eldoc-documentation-function)
                  #'ess-r-eldoc-function)
  ;; new eldoc
  (add-hook 'eldoc-documentation-functions #'ess-r-eldoc-function nil t)
  ;; new eldoc + Emacs 27.1
  (when (and (fboundp 'eldoc-documentation-default)
             (function-equal #'ignore eldoc-documentation-function))
    (setq-local eldoc-documentation-function #'eldoc-documentation-default)))

If that's right, it seems like a step backwards, ease-of-setup-wise at
least, from the simple

(add-function :before-until (local 'eldoc-documentation-function) #'ess-r-eldoc-function)

that we did before new eldoc. But maybe it's necessary, I haven't really
played around with the new eldoc features at all.

Thanks again!