]> git.eshelyaron.com Git - emacs.git/commitdiff
Make three new Flymake commands for debugging common problems
authorJoão Távora <joaotavora@gmail.com>
Mon, 9 Oct 2017 20:33:09 +0000 (21:33 +0100)
committerJoão Távora <joaotavora@gmail.com>
Tue, 10 Oct 2017 12:08:41 +0000 (13:08 +0100)
* lisp/progmodes/flymake.el (flymake-running-backends)
(flymake-disabled-backends)
(flymake-reporting-backends): Make interactive.
(flymake--collect): Take optional arg.

lisp/progmodes/flymake.el

index 27ec7a1f124660daf98cab472fb2e77ac3fdcb4e..53ce73e6a5c01ca34786754df452027a68cbd480 100644 (file)
@@ -622,24 +622,42 @@ different runs of the same backend."
         (with-current-buffer buffer
           (apply #'flymake--handle-report backend token args))))))
 
-(defun flymake--collect (fn)
+(defun flymake--collect (fn &optional message-prefix)
+  "Collect Flymake backends matching FN.
+If MESSAGE-PREFIX, echo a message using that prefix"
+  (unless flymake--backend-state
+    (user-error "Flymake is not initialized"))
   (let (retval)
     (maphash (lambda (backend state)
                (when (funcall fn state) (push backend retval)))
              flymake--backend-state)
+    (when message-prefix
+      (message "%s%s"
+               message-prefix
+               (mapconcat (lambda (s) (format "%s" s))
+                          retval ", ")))
     retval))
 
 (defun flymake-running-backends ()
   "Compute running Flymake backends in current buffer."
-  (flymake--collect #'flymake--backend-state-running))
+  (interactive)
+  (flymake--collect #'flymake--backend-state-running
+                    (and (called-interactively-p 'interactive)
+                         "Running backends: ")))
 
 (defun flymake-disabled-backends ()
   "Compute disabled Flymake backends in current buffer."
-  (flymake--collect #'flymake--backend-state-disabled))
+  (interactive)
+  (flymake--collect #'flymake--backend-state-disabled
+                    (and (called-interactively-p 'interactive)
+                         "Disabled backends: ")))
 
 (defun flymake-reporting-backends ()
   "Compute reporting Flymake backends in current buffer."
-  (flymake--collect #'flymake--backend-state-reported-p))
+  (interactive)
+  (flymake--collect #'flymake--backend-state-reported-p
+                    (and (called-interactively-p 'interactive)
+                         "Reporting backends: ")))
 
 (defun flymake--disable-backend (backend &optional explanation)
   "Disable BACKEND because EXPLANATION.