Fork me on GitHub
#announcements
<
2019-01-17
>
Cam Saul08:01:34

Hey everyone, if you're anything like me, it makes you happy when your code is pretty. And sorted ns declarations, with unused stuff removed, are the prettiest type of ns declarations. With that in mind I searched high and low for a linter that could help my pretty ns declarations stay pretty. Devastatingly, I could find nothing of the sort. The future seemed bleak. Little did I know the answer to my troubles was inside me all along. I opened up my REPL and before I knew it a brand new linter started coming together right before my very eyes. Behold: https://github.com/camsaul/lein-check-namespace-decls . Enjoy!

πŸ˜† 30
πŸ‘ 35
vemv08:01:49

Interesting work! I'll keep an eye on it There's https://github.com/gfredericks/how-to-ns as well

Cam Saul08:01:56

Oh man, can't believe I couldn't find that one. Well, more linter options are always a good thing IMO

vemv08:01:05

sure thing, it's valuable to have something that matches the nrepl tooling πŸ™‚

ccann16:01:00

Clojure linter that checks that namespace declarations are cleaned the way `clj-refactor` would clean them. Leiningen plugin.
πŸ™Œ πŸ™Œ

ccann16:01:11

my non-emacs-using coworkers will be happy they can know what the actual rules are

vemv16:01:57

My only complaint about clj-refactor is that it can be wrap the ns form to 80 columns too agressively... with no possible fix afaict But I do appreciate from it that it actually can clean the ns form in ways that a static tool can't

Cam Saul19:01:23

@U45T93RA6 internally refactor-nrepl (the Clojure middleware part of clj-refactor) prints namespaces with clojure.pprint/pprint, so you can configure that. I usually do something like this in one of my core namespaces to change the default printing width from 80 to 200:

(intern 'clojure.pprint '*print-right-margin* 200)
clj-refactor then won't wrap things unless they exceed 200 characters in width.

Cam Saul19:01:12

Either way the linter only checks that the namespace forms are = in the Clojure sense so you can make them wide or narrow as you want and the linter won't complain.

miro14:01:10

Hi guys, new release (0.7.3) of titanoboa is out. It now supports java 8-11 (so lots of javas then β˜•) - the main improvement is that the new version can now load external maven dependencies during runtime even on java 9 and higher (that was a tough one, but it works now). https://github.com/mikub/titanoboa

πŸ‘ 5
ikitommi18:01:16

[metosin/reitit "0.2.11"] is out! Reitit is a fast data-driven router for Clojure(Script) supporting browser-apps, ring, pedestal and sieppari. Notable changes: - segment-router is rewritten to use a custom Java-backed Segment Trie on the JVM, making it 2x faster in the benchmarks - linear-router is also backed by the the Segment Trie, making it 2-4 faster in the benchmarks - guide on how to use expound as spec-coercion error printer - FIX: route-data expansion can be extended https://cljdoc.org/d/metosin/reitit/0.2.11/doc/introduction

πŸ™Œ 65
πŸŽ‰ 25
parrot 20
aw_yeah 20
tony.kay21:01:52

Fulcro 2.8.0 is on Clojars. This new version adds β€œPre-merge” support by @wilkerlucio. This feature allows you to augment how data merge works at the component level. https://github.com/fulcrologic/fulcro http://book.fulcrologic.com/#PreMerge

πŸŽ‰ 40
fulcro 30