Cursive 2026.1

Mar 25, 2026

Cursive 2026.1 is out! It adds support for the new IntelliJ 2026.1, and the first of several major new code formatting features. There are also some new features that have been outstanding for a while around auto-requiring namespaces or auto-referring vars.

One of the most difficult things for teams using multiple editors is code formatting and keeping it in sync. With that in mind, I've been working on a big change: adding support for cljfmt-compatible formatting, and also adding support for the new-ish Standard Clojure Style. For various technical reasons I can't just integrate the external formatters into IntelliJ, I have to reimplement them using IntelliJ's infrastructure. There's a really long tail of incompatibilities with a change like this, and unfortunately the cljfmt version is not quite ready yet. However, this release does contain the Standard one, although it should still be considered experimental. I will have the cljfmt one out shortly. You can configure the formatter you would like to use at Settings | Editor | Code Style | Clojure. I’m very interested in feedback on how the Standard formatter works in practice. If you have a case where Cursive's formatting doesn't match the reference CLI, I consider that a bug and will fix it quickly.

When auto-completing namespaced keywords like ::my-specs/thing you'll now get the same completion options to auto-add an alias as when completing namespaced symbols. For keywords, the alias will be added using :as-alias by default, and then if you auto-complete a namespaced symbol from the same namespace later, the alias will be promoted to use :as. This is really useful if you use a lot of auto-namespaced keywords with e.g. spec. If you'd rather always use :as, there's a config flag for that.

Another feature that has been frequently requested is to be able to automatically refer vars by auto-completing them, if they have been referred elsewhere in your project. This has now been implemented, there will now be completion items for these vars and when you select them they'll be auto-referred. There are also new intentions to swap between referred and aliased vars at their use sites.

There are also some other nice new features - support for the better-cond macro family and for core.async's alt! and alt!! forms. Some of the paredit commands are now more performant, particularly when editing a lot of data with multiple carets. And there are a bunch of bug fixes too.

Here are the issues:

Added

  • Inspection/intention to require/add alias for namespace keyword #3080
  • Support IntelliJ 2026.1 EAP #3078
  • Auto-refer previously referred vars #3076
  • Add support for better-cond #3048
  • Auto import from fully qualified namespaced keywords #3003
  • Add support for core.async alt! and alt!! macros #2534
  • "Require" quick fix for keywords namespaced with an alias #1552
  • Add refactoring option to :refer a var #863

Changed

  • Configuration flag to always use :as when adding aliases for namespaced keywords #3081

Fixed

  • REPL cannot be started while IDE is indexing #3082

Cursive 2026.1-eap4