]> git.eshelyaron.com Git - emacs.git/commitdiff
Eglot: support deprecated MarkedString (bug#71353)
authorJoão Távora <joaotavora@gmail.com>
Sat, 6 Jul 2024 09:17:42 +0000 (10:17 +0100)
committerEshel Yaron <me@eshelyaron.com>
Sun, 7 Jul 2024 13:16:56 +0000 (15:16 +0200)
* lisp/progmodes/eglot.el: Make a markdown code block if
MarkedString passed.

(cherry picked from commit 74b82e6802e65ff0ec1ac3bbc680b5db9a7f1c89)

lisp/progmodes/eglot.el

index 599371d951c2a917f514ffa438973a3d8ddfd525..9c51e9b578dd180649307dd708707cd7c353e19f 100644 (file)
@@ -1871,15 +1871,25 @@ Doubles as an indicator of snippet support."
            (unless (bound-and-true-p yas-minor-mode) (yas-minor-mode 1))
            (apply #'yas-expand-snippet args)))))
 
-(defun eglot--format-markup (markup)
-  "Format MARKUP according to LSP's spec."
-  (pcase-let ((`(,string ,mode)
-               (if (stringp markup) (list markup 'gfm-view-mode)
-                 (list (plist-get markup :value)
-                       (pcase (plist-get markup :kind)
-                         ("markdown" 'gfm-view-mode)
-                         ("plaintext" 'text-mode)
-                         (_ major-mode))))))
+ (defun eglot--format-markup (markup)
+  "Format MARKUP according to LSP's spec.
+MARKUP is either an LSP MarkedString or MarkupContent object."
+  (let (string mode language)
+    (cond ((stringp markup)
+           (setq string markup
+                 mode 'gfm-view-mode))
+          ((setq language (plist-get markup :language))
+           ;; Deprecated MarkedString
+           (setq string (concat "```" language "\n"
+                                (plist-get markup :value) "\n```")
+                 mode 'gfm-view-mode))
+          (t
+           ;; MarkupContent
+           (setq string (plist-get markup :value)
+                 mode (pcase (plist-get markup :kind)
+                        ("markdown" 'gfm-view-mode)
+                        ("plaintext" 'text-mode)
+                        (_ major-mode)))))
     (with-temp-buffer
       (setq-local markdown-fontify-code-blocks-natively t)
       (insert string)