]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix a bug when eglot--request times out
authorJoão Távora <joaotavora@gmail.com>
Wed, 13 Jun 2018 17:46:19 +0000 (18:46 +0100)
committerJoão Távora <joaotavora@gmail.com>
Wed, 13 Jun 2018 17:46:19 +0000 (18:46 +0100)
* eglot.el (eglot--request): Better timeout
message.
(eglot--async-request): Must return the timer.

lisp/progmodes/eglot.el

index e438c492dd9346b9cf4cb7aaf344d7a1973e5007..7bef2ec08e11b23619479158ffedc1c7e654061b 100644 (file)
@@ -737,7 +737,7 @@ happens, the original timer keeps counting). Return (ID TIMER)."
                        (setf (eglot--status server) `(,message t))
                        server `(:message "error ignored, status set"
                                          :id ,id :error ,code)))
-                 (or timer (funcall make-timer)))
+                 (setq timer (or timer (funcall make-timer))))
              (eglot--pending-continuations server))
     (list id timer)))
 
@@ -758,7 +758,10 @@ DEFERRED is passed to `eglot--async-request', which see."
                  (eglot--async-request
                   server method params
                   :success-fn (lambda (result) (throw done `(done ,result)))
-                  :timeout-fn (lambda () (throw done '(error "Timed out")))
+                  :timeout-fn (lambda () (throw done
+                                                `(error
+                                                  ,(format "Request id=%s timed out"
+                                                           (car id-and-timer)))))
                   :error-fn (eglot--lambda (&key code message _data)
                               (throw done `(error
                                             ,(format "Ooops: %s: %s" code message))))