From 4f1f06375a219178ba681a6101af1fece73024b0 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 1 Mar 2022 07:59:05 -0800 Subject: [PATCH] Prevent empty diagnostic tags vector hiding main fontification MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * 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 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 5a0a8caba48..3f84b3b7a26 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)) -- 2.39.2