Eldoc: fix bug recently introduced in "old" protocol

In the "old" protocol, eldoc-documentation-strategy is actually used
as the deprecated eldoc-documentation-function and it is itself the
"origin" of the doc snippet to be displayed.

* lisp/emacs-lisp/eldoc.el (eldoc--invoke-strategy): Fix.
This commit is contained in:
João Távora 2023-03-24 14:34:05 +00:00
parent 4566a0c6b8
commit 541eec259b

View file

@ -911,8 +911,11 @@ the docstrings eventually produced, using
(let* ((eldoc--make-callback #'make-callback)
(res (funcall eldoc-documentation-strategy)))
;; Observe the old and the new protocol:
(cond (;; Old protocol: got string, output immediately;
(stringp res) (register-doc 0 res nil) (display-doc))
(cond (;; Old protocol: got string, e-d-strategy is iself the
;; origin function, and we output immediately;
(stringp res)
(register-doc 0 res nil eldoc-documentation-strategy)
(display-doc))
(;; Old protocol: got nil, clear the echo area;
(null res) (eldoc--message nil))
(;; New protocol: trust callback will be called;