GNU bug report logs - #47388
27.1; eldoc-documentation-function is ignore in updated eldoc

Previous Next

Package: emacs;

Reported by: Alex Branham <alex.branham <at> gmail.com>

Date: Thu, 25 Mar 2021 14:06:01 UTC

Severity: normal

Found in version 27.1

Done: Alex Branham <alex.branham <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #38 received at 47388 <at> debbugs.gnu.org (full text, mbox):

From: João Távora <joaotavora <at> gmail.com>
To: Alex Branham <alex.branham <at> gmail.com>
Cc: "Basil L. Contovounesios" <contovob <at> tcd.ie>,
 Stefan Monnier <monnier <at> iro.umontreal.ca>, 47388 <at> debbugs.gnu.org
Subject: Re: bug#47388: 27.1; eldoc-documentation-function is ignore in
 updated eldoc
Date: Sun, 28 Mar 2021 15:50:38 +0100
Alex Branham <alex.branham <at> gmail.com> writes:

> On Sat 27 Mar 2021 at 12:53, João Távora <joaotavora <at> gmail.com> 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)))

You don't need to be as complex as this:

(if (not (boundp 'eldoc-documentation-strategy))
    (add-function :before-until (local 'eldoc-documentation-function)
                   #'ess-r-eldoc-function)
  (add-hook 'eldoc-documentation-functions #'ess-r-eldoc-function nil t)
  (when (function-equal #'ignore eldoc-documentation-function)
        (setq-local eldoc-documentation-function #'eldoc-documentation-default|compose|whatever))))

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

You can still just that and call it a day.  Just that, because the new
eldoc in the yet-unreleased Emacs 28 is backward compatible.  I've tried
to explain this three times already in this exchange.

João





This bug report was last modified 4 years and 56 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.