emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

feature/eglot2emacs 4f1f06375a 045/120: Prevent empty diagnostic tags ve


From: João Távora
Subject: feature/eglot2emacs 4f1f06375a 045/120: Prevent empty diagnostic tags vector hiding main fontification
Date: Thu, 20 Oct 2022 07:16:49 -0400 (EDT)

branch: feature/eglot2emacs
commit 4f1f06375a219178ba681a6101af1fece73024b0
Author: Brian Leung <bkleung89@gmail.com>
Commit: João Távora <joaotavora@gmail.com>

    Prevent empty diagnostic tags vector hiding main fontification
    
    * eglot.el (eglot-handle-notification): Require that the resulting
    list of faces is non-empty and that each face corresponds only to a
    known tag.
    
    For unknown tags, we don't pass any additional face information to
    Flymake, and instead expect it to make the appropriate overlay with
    the "severity" property of the Diagnostic.
    
    Co-authored-by: João Távora <joaotavora@gmail.com>
    GitHub-reference: fix https://github.com/joaotavora/eglot/issues/851
---
 lisp/progmodes/eglot.el | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 5a0a8caba4..3f84b3b7a2 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -1866,11 +1866,11 @@ COMMAND is a symbol naming the command."
                         (current-buffer) beg end
                         (eglot--diag-type severity)
                         message `((eglot-lsp-diag . ,diag-spec))
-                        (and tags
-                             `((face
-                                . ,(mapcar (lambda (tag)
-                                             (alist-get tag eglot--tag-faces))
-                                           tags)))))))
+                        (when-let ((faces
+                                    (cl-loop for tag across tags
+                                             when (alist-get tag 
eglot--tag-faces)
+                                             collect it)))
+                          `((face . ,faces))))))
            into diags
            finally (cond (eglot--current-flymake-report-fn
                           (eglot--report-to-flymake diags))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]