Splint v1.9.0 and v1.10.0

Forgot to post after releasing v1.9.0 back in May, so this is gonna be fuckin huge.

In short: v1.9 added a new rule (style/prefer-clj-string) and a new cli flag (--[no-]summary). v1.10 added reading available deps.edn and project.clj files to determine the directories to check, changing the pattern DSL to use a variation of pangloss/pattern's DSL, and to add 5 new rules, 4 of which are performance rules (style/redundant-regex-constructor, performance/assoc-many, performance/avoid-satisfies, performance/get-in-literals, performance/get-keyword).

The change in v1.10 means that you can run bb splint or clojure -M:splint and it'll "just work": it'll check the primary directories and the directories under and :test alias without any extra fiddling. This makes it much easier to use quickly. I've always been annoyed at clj-kondo's insistence on forcing the --lint flag for choosing files, and loved Rubocop's "just run it" mentality.

The performance rules are disabled by default cuz they might make code more wordy or annoying to work with, and they're highly opinionated. I like them but I get it.

Full release docs/change logs under the fold.


v1.9.0

New Rules

Added

Changed

Fixed

v1.10.0

The big feature here is adding support to run splint without specifying paths. Now Splint will read the deps.edn or project.clj file in the current directory and check the paths in the base definition as well as :dev and :test aliases/profiles if no path argument is given. Splint still doesn't support specifying paths in .splint.edn, nor does it allow for using paths from a project file as well as additional paths when called, but those are planned.

The second big change is moving from the old DSL to the new pangloss/pattern inspired DSL. More flexible, more usable, overall better.

The third is adding performance rules. These are off by default and are designed for those who want to pinch their cycles. Some affect common code (get-in) and some are much more rare (satisfies), but they're all designed to help you be mindful of slower paths.

Breaking

New Rules

Added

Changed

Liked the post? Hated the post? Felt nothing whatsoever about the post? Email me, and let me know!