There was a time when I just didn’t trust Emacs. This lack of confidence was the
result of mixing good and evil: listening to other reliable Emacsers’ opinions
while being too lazy to see for myself what Emacs could do. The outcome of this
endeavour was a frenetic copying-and-pasting of code snippets in my init.el
,
blindly dragging in more and more external packages.
Don’t get me wrong, external packages made Emacs what it is today for me. I can’t even imagine using it without the likes of Magit or CIDER. However, ignoring what is already there and reaching for MELPA every time I have an itch to scratch has made me overlook built-in niceties like project.el.
Flymake
did fell prey of this line of reasoning.
Flycheck has always seemed like the way
go, so much so that I have barely registered João Távora’s and other Emacs
developers’ efforts to improve Flymake. Since my recent experiments with
project.el
have turned my eyes inwards again, I wanted to see if I can live
without Flycheck.
There are three places where I need on-the-fly syntax checking:
- Emacs Lisp package files with package-lint
- Clojure files with clj-kondo
- Markdown files with proselint
Kind people took care of Emacs Lisp and Clojure for me: package-lint-flymake
comes with package-lint
and
flymake-kondor is a valid
alternative to
flycheck-clj-kondo. But
I wasn’t able to find an existing integration with proselint
, so I decided to
provide one.
My first tries with flymake-easy
didn’t go very well. I asked for help on Emacs
StackExchange,
before realizing I could use
flymake-quickdef like
flymake-kondor
does and answer to
myself. The next step was making
the solution available to everyone in the form of a package, and so I published
the little
flymake-proselint.
Flymake may not have the extensive support for checkers that its bigger brother
has, and it doesn’t seem to have the same huge community behind, but it’s still
a great library to play with. There is a comparison between the two projects on
the Flycheck
website,
so have a look there before making your choice. Note that the comparison doesn’t
mention flymake-quickdef
, which I find easier to use for extending Flymake.
As for me, my requirements for on-the-fly syntax checking are met by Flymake. At the end of the day it’s good to know that after all these years together Emacs can still surprise me.