From ace749f2e3be5b23cf4cd29c702a0e82d4d871c3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jo=C3=A3o=20T=C3=A1vora?= Date: Sat, 9 Jan 2021 18:49:49 +0000 Subject: [PATCH] Count Flymake diagnostics in modeline by severity, not type Originally reported in https://github.com/joaotavora/eglot/issues/588 by Pankaj Jangid. * lisp/progmodes/flymake.el (flymake--mode-line-counter): Count diagnostics by severity level, not by type. (Version): Bump to 1.1.1 --- lisp/progmodes/flymake.el | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index fddc13f56b1..460af718aad 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -4,7 +4,7 @@ ;; Author: Pavel Kobyakov ;; Maintainer: João Távora -;; Version: 1.1.0 +;; Version: 1.1.1 ;; Keywords: c languages tools ;; Package-Requires: ((emacs "26.1") (eldoc "1.1.0")) @@ -1283,6 +1283,8 @@ correctly.") (when (flymake-running-backends) flymake-mode-line-counter-format)) (defun flymake--mode-line-counter (type &optional no-space) + "Compute number of diagnostics in buffer with TYPE's severity. +TYPE is usually keyword `:error', `:warning' or `:note'." (let ((count 0) (face (flymake--lookup-type-property type 'mode-line-face @@ -1290,7 +1292,8 @@ correctly.") (maphash (lambda (_b state) (dolist (d (flymake--backend-state-diags state)) - (when (eq type (flymake--diag-type d)) + (when (= (flymake--severity type) + (flymake--severity (flymake--diag-type d))) (cl-incf count)))) flymake--backend-state) (when (or (cl-plusp count) -- 2.39.5