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.
All I had to do was adapt it to my preferences:
(defun mu-flymake-mode-activate ()
"Activate `flymake-mode' only in my projects."
(project--ensure-read-project-list)
(let ((known-projects (project-known-project-roots))
(pr (or (locate-dominating-file "." ".git")
default-directory)))
(if (and (eq buffer-read-only nil)
(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.