Cursive 1.13.0

136 views
Skip to first unread message

Cursive

unread,
Jul 11, 2023, 12:04:58 AM7/11/23
to cur...@googlegroups.com

Hi everyone,

Cursive 1.13.0 is out! This release contains a large update to how the deps integration works, adds support for IntelliJ 2023.2, and fixes numerous bugs.

In this release, the Cursive deps integration has had a major overhaul. I was never happy with how the previous one worked, and it relied on me writing code using unofficial APIs that would occasionally break with new deps releases. It also required different solutions for macOS/Linux and Windows, and was hard to keep up to date with deps changes. In this release, the integration is now based on deps.clj. This means that it should work equivalently on macOS and Windows, run configurations invoking deps are now more flexible and expressive, and it should automatically stay up to date with deps changes. A good example of the sort of problem the previous integration was prone to is #2689, where less common deps features just didn't work correctly. A good example of where the new run config flexibility helps is in starting tools.build REPLs, which was previously not possible but is now easy. Run configs will now also automatically use the deps classpath caching, which should make REPL starts quicker if nothing has changed.

Another area that this change has helped is Polylith support, which was previously hard for boring internal reasons. This should now work in this build. If you're working with Polylith, you'll want to check the Preferences | Languages & Frameworks | Clojure | Project Specific Options | Resolve over whole project option, which will mean that symbols will be resolved correctly over all bases and components.

Unfortunately the integration with Package Search has stopped working in this build, due to changes in how JetBrains are implementing it. I'm hopeful that it should be restored in the next build.

This release fixes a couple of bugs when using refactorings with parinfer enabled, and also fixes a problem when using the Java interop field access syntax to access fields from deftype/defrecord classes. There's also a quality of life fix allowing URLs in strings to be clickable.

Here are the issues:

Added

  • Allow defaulting of modules for run configurations when created from context #2818
  • Make URLs in strings clickable #2804
  • Allow running tools.build REPLs #2653
  • Support adding brick as :extra-deps for a Polylith workspace in development #2554
  • deps.edn: add support for alias types other than -A #2409

Fixed

  • Stubs generation doesn't correctly stop when encountering errors #2814
  • Problems when generating stubs due to interactions with user.clj #2808
  • Cursive doesn't resolve deftype fields containing dashes when accessed using field syntax #2797
  • Introduce Variable with Parinfer breaks code #2786
  • replace-deps/paths in aliases stopped working around 1.12.3 #2689
  • Rename variable with Parinfer breaks code #2106

Cheers,
Colin

Reply all
Reply to author
Forward
0 new messages