My recent move from Flycheck to Flymake has proven to be a solid choice because the Emacs built-in syntax checker has yet to let me down. And since by now I am sure my love for project.el is absolutely obvious, could I miss the opportunity to make these two underappreciated gems shine together?

Honestly, though, the credit here goes all to Protesilaos Stavrou. His Flymake setup made me aware of a neat way to limit the use of Flymake to the places I actually need it.

(defun mu-flymake-mode-activate ()
"Activate flymake-mode' only in my projects."
(let ((known-projects (project-known-project-roots))
(pr (or (locate-dominating-file "." ".git")
default-directory)))
(member pr known-projects))
(flymake-mode +1)
(flymake-mode -1))))


I then hooked this little function to prog-mode-hook and text-mode-hook and everything was good to go.

Note that project.el must be required before running mu-flymake-mode-activate, otherwise Emacs will complain about project--ensure-read-project-list` not being available.