branch: externals/elpa
commit 6689a1588366a5d461207b11130b167e14a1dcf4
Author: João Távora <joaotav...@gmail.com>
Commit: João Távora <joaotav...@gmail.com>

    Add eglot-clear-status interactive command
    
    * eglot.el (eglot-clear-status): New
    (eglot-forget-pending-continuations): Fix bug.
    (eglot--mode-line-format): Add link to eglot-clear-status.
---
 eglot.el | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/eglot.el b/eglot.el
index 1a82cc5..db594f4 100644
--- a/eglot.el
+++ b/eglot.el
@@ -361,9 +361,14 @@ identifier.  ERROR is non-nil if this is an error."
 
 (defun eglot-forget-pending-continuations (process)
   "Stop waiting for responses from the current LSP PROCESS."
-  (interactive (eglot--current-process-or-lose))
+  (interactive (list (eglot--current-process-or-lose)))
   (clrhash (eglot--pending-continuations process)))
 
+(defun eglot-clear-status (process)
+  "Clear most recent error message from PROCESS."
+  (interactive (list (eglot--current-process-or-lose)))
+  (setf (eglot--status process) nil))
+
 (cl-defun eglot--request (process
                           method
                           params
@@ -668,12 +673,15 @@ running.  INTERACTIVE is t if called interactively."
              `("/"
                (:propertize
                 ,status
-                help-echo ,(concat "mouse-1: go to events buffer")
+                help-echo ,(concat "mouse-1: go to events buffer\n"
+                                   "mouse-3: clear this status")
                 mouse-face mode-line-highlight
                 face compilation-mode-line-fail
                 keymap ,(let ((map (make-sparse-keymap)))
                           (define-key map [mode-line mouse-1]
                             'eglot-events-buffer)
+                          (define-key map [mode-line mouse-3]
+                            'eglot-clear-status)
                           map))))
          ,@(when (and doing (not done-p))
              `("/"

Reply via email to