branch: elpa/flymake-collection
commit 64871ef173853304c6acc299510abcc153b10da1
Author: Mohsin Kaleem <mohk...@kisara.moe>
Commit: Mohsin Kaleem <mohk...@kisara.moe>

    Update flymake version and flymake-rest-change-checker
---
 flymake-rest-commands.el | 40 +++++++++++++++++++++-------------------
 flymake-rest.el          |  2 +-
 2 files changed, 22 insertions(+), 20 deletions(-)

diff --git a/flymake-rest-commands.el b/flymake-rest-commands.el
index 8ee6c69b0d..3d0f5fb377 100644
--- a/flymake-rest-commands.el
+++ b/flymake-rest-commands.el
@@ -26,25 +26,27 @@
 (require 'flymake-rest-hook)
 
 (defun flymake-rest-change-checker--cands (all-modes)
-  (cl-remove-duplicates
-   (cl-loop for (mode . checkers) in
-            (if all-modes
-                flymake-rest-config
-              (list (assoc major-mode flymake-rest-config)))
-            append
-            (cl-loop for it in checkers
-                     with checker = nil
-                     do (setq checker (if (symbolp it)
-                                          it
-                                        (car it)))
-                     with exists = nil
-                     do (setq exists (or (member checker 
flymake-diagnostic-functions)
-                                         (when-let ((state (gethash checker 
flymake--backend-state)))
-                                           (not 
(flymake--backend-state-disabled state)))))
-                     when checker
-                     collect (list (symbol-name checker)
-                                   mode checker exists)))
-   :test (lambda (a b) (string-equal (car a) (car b)))))
+  "Candidates for `flymake-rest-change-checker'.
+With ALL-MODES fetch all registered flymake checkers even when
+they aren't associated with the current mode."
+  (let ((configured-checkers (flymake--collect #'identity)))
+    (cl-remove-duplicates
+     (cl-loop for (mode . checkers) in
+              (if all-modes
+                  flymake-rest-config
+                (list (assoc major-mode flymake-rest-config)))
+              append
+              (cl-loop for it in checkers
+                       with checker = nil
+                       do (setq checker (if (symbolp it)
+                                            it
+                                          (car it)))
+                       with exists = nil
+                       do (setq exists (member checker configured-checkers))
+                       when checker
+                         collect (list (symbol-name checker)
+                                       mode checker exists)))
+     :test (lambda (a b) (string-equal (car a) (car b))))))
 
 (defun flymake-rest-change-checker--read-checkers (&optional all-modes)
   (let* ((cands (flymake-rest-change-checker--cands all-modes))
diff --git a/flymake-rest.el b/flymake-rest.el
index f72fe3e0df..8c0dc31841 100644
--- a/flymake-rest.el
+++ b/flymake-rest.el
@@ -6,7 +6,7 @@
 ;; Created: 15 June 2021
 ;; Homepage: https://github.com/mohkale/flymake-rest
 ;; Keywords: language tools
-;; Package-Requires: ((emacs "27.1") (let-alist "1.0"))
+;; Package-Requires: ((emacs "28.1") (let-alist "1.0") (flymake-rest "1.2.1))
 ;; SPDX-License-Identifier: MIT
 ;; Version: 1.0.0
 

Reply via email to