Hi everyone,
Cursive 1.12.0 is out! It contains a bunch of new stuff, support for IntelliJ 2021.3, and many bug fixes too.
The first new feature is support for the new tools feature in Deps, which is used for the new tools.build functionality. Here’s how this works in Cursive. In addition to the existing alias support, there’s now a separate section where you can select aliases which represent tools. When you select an alias as a tool and refresh your project, a new library will be created under External Libraries in your Project View. This library will contain the classpath of the tool. That classpath will be used for symbol resolution in files identified by the :ns-default and :ns-aliases entries in the tool alias. Currently, only namespaces explicitly named here will get this support, but I’ll improve this soon to include other files transitively included by those files. One note, I’ve found the IntelliJ feature I use for this to be a little flakey, and sometimes after changing the tool classpath I need to close my project (not IntelliJ completely) and then reopen it.
The next new feature is support for IntelliJ’s new Package Search service. If you’re not familiar with it, there are blog entries from JetBrains about it here and here. Full support for the Dependencies toolwindow is now available for Leiningen and Deps, and this comes with other nice features like an inspection showing out-of-date packages. Since this relies on new APIs, this feature is only available with IntelliJ 2021.3.
There’s also much improved support for IntelliJ’s new Code With Me feature. The REPL is now synced and the structural editing actions work on the client now. There’s still a bunch of funkiness around this but it’s getting usable now. Outstanding issues are tracked in #2602, if you find problems please comment over there. This feature also only works with 2021.3.
The main bug fix is for a problem with project synchronisation which would occasionally lock the IDE altogether. There’s also an improvement for the test result diffs which allows the structural actions to work there. The test result diffs when using the test runner now also show a nicely formatted diff like the interactive test support does, and there’s support for setting the Clojure CLI config directory when using Deps (equivalent to setting $CLJ_CONFIG).
There are some improvements to the Deps support, you can now ask Cursive to download source artifacts which will be attached to libraries when syncing - details on how to do that are in #2591. Cursive will also respect :classpath-overrides when syncing deps. There are also some minor new features around map alignment and structural movement, and support for the new :as-alias option in require.
Several users over the years have mentioned that it’s annoying that the REPL steals the editor focus when starting. So now by default, when you start a REPL the focus will not be taken to the REPL editor pane. This is because most people don’t actually use that pane much, preferring to send forms from code editors to the REPL rather than entering them there. If you hate this, there’s a new flag to allow the REPL to be focused in the run configurations.
Here are the issues:
AddedCheers,
Colin