]> git.eshelyaron.com Git - emacs.git/commitdiff
Unbreak window/showmessagerequest
authorJoão Távora <joaotavora@gmail.com>
Fri, 29 Nov 2019 23:33:12 +0000 (23:33 +0000)
committerJoão Távora <joaotavora@gmail.com>
Sat, 30 Nov 2019 16:26:23 +0000 (16:26 +0000)
* eglot.el (eglot-handle-request): Answer with a proper
MessageActionItem.

GitHub-reference: fix https://github.com/joaotavora/eglot/issues/362

lisp/progmodes/eglot.el

index 90f2c68474514a9c9b2d442578f997a0fc2cdbd0..b3a7f518267b23a854e8d33129e81ac7d6430ad6 100644 (file)
@@ -1450,16 +1450,16 @@ COMMAND is a symbol naming the command."
 (cl-defmethod eglot-handle-request
   (_server (_method (eql window/showMessageRequest)) &key type message actions)
   "Handle server request window/showMessageRequest"
-  (or (completing-read
-       (concat
-        (format (propertize "[eglot] Server reports (type=%s): %s"
-                            'face (if (<= type 1) 'error))
-                type message)
-        "\nChoose an option: ")
-       (or (mapcar (lambda (obj) (plist-get obj :title)) actions)
-           '("OK"))
-       nil t (plist-get (elt actions 0) :title))
-      (jsonrpc-error :code -32800 :message "User cancelled")))
+  (let ((label (completing-read
+                (concat
+                 (format (propertize "[eglot] Server reports (type=%s): %s"
+                                     'face (if (<= type 1) 'error))
+                         type message)
+                 "\nChoose an option: ")
+                (or (mapcar (lambda (obj) (plist-get obj :title)) actions)
+                    '("OK"))
+                nil t (plist-get (elt actions 0) :title))))
+    (if label `(:title ,label) :null)))
 
 (cl-defmethod eglot-handle-notification
   (_server (_method (eql window/logMessage)) &key _type _message)