diff options
author | João Távora <joaotavora@gmail.com> | 2018-06-05 14:31:38 +0100 |
---|---|---|
committer | João Távora <joaotavora@gmail.com> | 2018-06-05 15:18:04 +0100 |
commit | aadac04923c9ae47f0bccc706857b94166c9d355 (patch) | |
tree | d9eb075294247addb0292705e5026fd147b42624 /lisp/progmodes/flymake.el | |
parent | fb759a75007d38a8aea6e8c1a22bbc004453a73f (diff) | |
download | emacs-aadac04923c9ae47f0bccc706857b94166c9d355.tar.gz |
Correctly filter Flymake diagnostic types shown in mode-line
Thus, if a package foo has its own types foo-error and
foo-warning, and if the buffer has no errors, the mode-line
will correctly show `[0 0]' (zero errors and warnings) instead
of `[0 0 0 0]' (zero errors, zero foo-errors, zero warnings,
zero foo-warnings).
* lisp/progmodes/flymake.el
(flymake--mode-line-format): Coalesce diagnostic types based on
the severity, not the symbol.
Diffstat (limited to 'lisp/progmodes/flymake.el')
-rw-r--r-- | lisp/progmodes/flymake.el | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 35d56725445..ec933ad16ba 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -1068,14 +1068,17 @@ applied." ,@(unless (or all-disabled (null known)) (cl-loop + with get-severity = (lambda (type) + (flymake--lookup-type-property + type + 'severity + (warning-numeric-level :error))) for (type . severity) in (cl-sort (mapcar (lambda (type) - (cons type (flymake--lookup-type-property - type - 'severity - (warning-numeric-level :error)))) + (cons type (funcall get-severity type))) (cl-union (hash-table-keys diags-by-type) - '(:error :warning))) + '(:error :warning) + :key get-severity)) #'> :key #'cdr) for diags = (gethash type diags-by-type) |