We can fly with what we have


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:

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.