]> git.eshelyaron.com Git - emacs.git/commitdiff
Inhibit quit in ElDoc timer functions (bug#45117)
authorJoão Távora <joaotavora@gmail.com>
Sun, 13 Dec 2020 23:08:42 +0000 (23:08 +0000)
committerJoão Távora <joaotavora@gmail.com>
Sun, 13 Dec 2020 23:16:53 +0000 (23:16 +0000)
The point of un-inhibiting it was to make ElDoc backends interruptible
with any input (as in while-no-input), since that should in principle
invalidate the need of the current ElDoc processing.  But that
strategy is dangerous for backends that perform complex
synchronization with external processes.  Better let each backend
decide for itself it needs this eager interruptive behavior, like is
presumably the case with the Octave backend.

This reverts a part of

    commit 12e922156c86a26fa4bb2cb9e7d2b3fd639e4707
    Author: Stefan Monnier <monnier@iro.umontreal.ca>
    Date:   Tue Dec 4 18:15:44 2018 -0500

* lisp/emacs-lisp/eldoc.el (eldoc-print-current-symbol-info):

* lisp/progmodes/octave.el (octave-eldoc-function-signatures): Use
while-no-input.

lisp/emacs-lisp/eldoc.el
lisp/progmodes/octave.el

index 6a976841038dfc8736d335ececcfdee1c76947f7..c9d5521e502fc886d32dced28dd9f9f7f9f3fe8d 100644 (file)
@@ -867,11 +867,7 @@ the docstrings eventually produced, using
                        eldoc--last-request-state))
            (let ((non-essential t))
              (setq eldoc--last-request-state token)
-             ;; Only keep looking for the info as long as the user hasn't
-             ;; requested our attention.  This also locally disables
-             ;; inhibit-quit.
-             (while-no-input
-               (eldoc--invoke-strategy nil)))))))
+             (eldoc--invoke-strategy nil))))))
 
 \f
 ;; This section only affects ElDoc output to the echo area, as in
index c313ad11792448c0ba7c95d266334e3e6570b259..bda4e60c55cda00157cd9a10dbe587b23f19f4c6 100644 (file)
@@ -1605,8 +1605,9 @@ code line."
 
 (defun octave-eldoc-function-signatures (fn)
   (unless (equal fn (car octave-eldoc-cache))
-    (inferior-octave-send-list-and-digest
-     (list (format "print_usage ('%s');\n" fn)))
+    (while-no-input
+      (inferior-octave-send-list-and-digest
+       (list (format "print_usage ('%s');\n" fn))))
     (let (result)
       (dolist (line inferior-octave-output-list)
         ;; The help output has changed a few times in GNU Octave.