]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix ElDoc's eldoc-documentation-enthusiast strategy
authorJoão Távora <joaotavora@gmail.com>
Thu, 3 Sep 2020 21:17:29 +0000 (22:17 +0100)
committerJoão Távora <joaotavora@gmail.com>
Thu, 3 Sep 2020 22:20:55 +0000 (23:20 +0100)
As soon as we get a response from any of the user functions/sources in
eldoc-documentation-functions, we must make sure to call the
display-doc local function, just like in the other strategies.

That is even if that response produced nil, meaning that there's no
doc coming from that source.  Failure to do so when none of the
sources produced non-nil would keep stale documentation displaying.

First reported in https://github.com/joaotavora/eglot/issues/503

* lisp/emacs-lisp/eldoc.el (eldoc--invoke-strategy): Fix
:enthusiast strategy.
(Version): Bump to 1.10.0

lisp/emacs-lisp/eldoc.el

index 6bb732ef858e1170303e9468aded9ed95a75ff95..772c907c28424a137bc68df2f6478c2e4b0ca0eb 100644 (file)
@@ -5,7 +5,7 @@
 ;; Author: Noah Friedman <friedman@splode.com>
 ;; Keywords: extensions
 ;; Created: 1995-10-06
-;; Version: 1.9.0
+;; Version: 1.10.0
 ;; Package-Requires: ((emacs "26.3"))
 
 ;; This is a GNU ELPA :core package.  Avoid functionality that is not
@@ -740,14 +740,14 @@ should endeavour to display the docstrings eventually produced."
                  (when (and string (cl-loop for (p) in docs-registered
                                             never (< p pos)))
                    (setq docs-registered '())
-                   (register-doc pos string plist)
-                   (when (and (timerp eldoc--enthusiasm-curbing-timer)
-                              (memq eldoc--enthusiasm-curbing-timer
-                                    timer-list))
-                     (cancel-timer eldoc--enthusiasm-curbing-timer))
-                   (setq eldoc--enthusiasm-curbing-timer
-                         (run-at-time (unless (zerop pos) 0.3)
-                                      nil #'display-doc)))
+                   (register-doc pos string plist))
+                 (when (and (timerp eldoc--enthusiasm-curbing-timer)
+                            (memq eldoc--enthusiasm-curbing-timer
+                                  timer-list))
+                   (cancel-timer eldoc--enthusiasm-curbing-timer))
+                 (setq eldoc--enthusiasm-curbing-timer
+                       (run-at-time (unless (zerop pos) 0.3)
+                                    nil #'display-doc))
                  t))
               (:patient
                (cl-incf want)