From b21929955d9fe59ffc79a6759f1b8887bb7699cd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jo=C3=A3o=20T=C3=A1vora?= Date: Wed, 13 Jun 2018 18:46:19 +0100 Subject: [PATCH] Fix a bug when eglot--request times out * eglot.el (eglot--request): Better timeout message. (eglot--async-request): Must return the timer. --- lisp/progmodes/eglot.el | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index e438c492dd9..7bef2ec08e1 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -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)))) -- 2.39.2