CIDER 0.22 was released just a month ago, but now I’m happy to announce the release of CIDER 0.23 (“Lima”). Unlike CIDER 0.22, Lima is a pretty small release. I was under a lot of pressure to ship 0.22 in time for Clojure/south and I didn’t have time to complete a few small tickets that I had originally planned to go into it. The new release basically addresses them, plus a few bugs that were reported in CIDER 0.22. You know what’s really good about small releases? It’s quite simple - you don’t need to write long blog posts about them.

There’s not much in terms of new features to highlight - probably the most notable change is that CIDER now infers automatically figwheel builds and will present the available options to you with auto-completion when you need to select a build. Another small change is that now you can configure the position of evaluation results in source buffers - before they were always displayed at the end of the current line, but now you can display them right after the expression you’ve evaluated. Here’s the magic bit of Emacs configuration to make this happen:

( setq cider-result-overlay-position 'at-point )

We’ve also added the possibility to disable the new enhanced ClojureScript code completion, as some users reported it was causing issues for them that we’ve been having a hard time reproducing and identifying. If you want to go back to the basic ClojureScript completion from earlier versions of CIDER just use the following:

( setq cider-enhanced-cljs-completion-p nil )

Now it’s time for slightly bigger update - translating file paths! That’s a small feature that might be useful to people developing using Docker. For instance, suppose your app is running in a Docker container with your source directories mounted there. The navigation paths you’d get from nREPL will be relative to the source in the Docker container rather than the correct path on your host machine. If you wish to translate file paths from your running instance you may use the cider-path-translations defcustom to do so. You can add translation mappings easily by setting the following (typically in .dir-locals.el on a per-project basis):

(( nil ( cider-path-translations . (( "/root" . "/Users/foo" ) ( "/src/" . "/Users/foo/projects" )))))

Each entry will be interpreted as a directory entry so trailing slash is optional. Navigation to some definition will attempt to translate these locations, and if they exist, navigate there rather than report the file does not exist. In the example above, the .m2 directory is mounted at /root/.m2 and the source at /src . These translations would map these locations back to the user’s computer so that navigation to definition would work.

There are some interesting updates on the documentations front as well. I’ve replaced all of the pages on the old documentation site https://cider.readthedocs.io with redirects to https://docs.cider.mx. This marks the end of the run for the legacy documentation portal and hopefully it’s going to affect positively the Google page rank of the new one. I’ve also started work on a cider-nrepl section of the documentation portal. It’s still super basic, but it’s also the best documentation cider-nrepl has ever had.

We’ve also fixed a bunch of bugs in Orchard and cider-nrepl, and shipped a new version of Piggieback, which doesn’t blow up in the absence of ClojureScript! Cool stuff, but I’m too lazy to write in details about any of this. I think it’s safe to say CIDER 0.23 is nice step on the path towards better stability and everyone should update to it right away. You can find a complete list of all the changes in CIDER 0.23 here.

I’m quite pleased with this release and I’ll try to do a couple of more small releases until the end of the year. As usual I’d like to thank everyone who contributed to the developed of Lima and the awesome people at Clojurists Together for supporting the project. You’re awesome!

That’s all from me for today. Until next release! Cheers!