]> git.eshelyaron.com Git - emacs.git/commitdiff
Eglot: don't send invisible text to Eldoc
authorJoão Távora <joaotavora@gmail.com>
Thu, 23 Mar 2023 17:34:46 +0000 (17:34 +0000)
committerJoão Távora <joaotavora@gmail.com>
Thu, 23 Mar 2023 21:14:21 +0000 (21:14 +0000)
Eglot's rendering of Markdown is imperfect and based on gfm-view-mode.
To make it slightly better, don't send invisible text in
eglot-hover-eldoc-function.

* lisp/progmodes/eglot.el (eglot--format-markup): Hide invisible text.

lisp/progmodes/eglot.el

index 919f44a2d9a99f89f10a478538391ea7b464e7f1..fae1c8db8b7f878699cc4e5062a830e756710e18 100644 (file)
@@ -1653,10 +1653,15 @@ Doubles as an indicator of snippet support."
       (setq-local markdown-fontify-code-blocks-natively t)
       (insert string)
       (let ((inhibit-message t)
-            (message-log-max nil))
-        (ignore-errors (delay-mode-hooks (funcall mode))))
-      (font-lock-ensure)
-      (string-trim (buffer-string)))))
+            (message-log-max nil)
+            match)
+        (ignore-errors (delay-mode-hooks (funcall mode)))
+        (font-lock-ensure)
+        (goto-char (point-min))
+        (while (setq match (text-property-search-forward 'invisible))
+          (delete-region (prop-match-beginning match)
+                         (prop-match-end match)))
+        (string-trim (buffer-string))))))
 
 (define-obsolete-variable-alias 'eglot-ignored-server-capabilites
   'eglot-ignored-server-capabilities "1.8")