anythingを使ってflymakeのエラー行を表示する

探してみても見あたら無かったので慣れないelispで書いてみたでござるの巻

(eval-when-compile (require 'cl))
(require 'flymake)
(setq anything-c-source-flymake
  '((name . "Flymake")
    (init . (lambda ()
              (setq anything-flymake-err-list
                    (loop for err-info in flymake-err-info
                          for err = (nth 1 err-info)
                          append err))))
    (candidates
     . (lambda ()
         (mapcar
          (lambda (err)
            (let* ((text (flymake-ler-text err))
                   (line (flymake-ler-line err)))
              (cons (format "[%s] %s" line text) err)))
          anything-flymake-err-list)))
    (action
     . (("Goto line" . (lambda (candidate) (goto-line (flymake-ler-line candidate) anything-current-buffer)))))))

(defun anything-flymake ()
  (interactive)
  (something (list anything-c-source-flymake)))
M-x anything-flymake

でエラーの一覧を表示。
C-zでanythingのバッファを開いたままactionが実行出来るので、
一覧を表示させたままエラー行の表示できます。