Cursive 1.13.4

116 views
Skip to first unread message

Cursive

unread,
Aug 5, 2024, 10:14:04 PM8/5/24
to cur...@googlegroups.com

Hi everyone,

Cursive 1.13.4 is out! This release includes several new features, improvements, and bug fixes.

Support for IntelliJ 2024.2 has been added ahead of its release, and support for 2023.1 has been dropped since 2024.1 has been out for a while now.

This release updates the support for the new interop syntax in Clojure 1.12, and provides an inspection to convert code using reified versions of functional interfaces to use a function instead.

It also fixes some long-standing issues with the test integration. Failed test assertions now show explanations inline in the editor, and diffs are displayed inline with the option to pop out. This fixes issues with several testing libraries including test.check, test.chuck, and matcher-combinators. For multiple assertion results, you can now switch between them inline for both diffs and result inlays. There's also a new option to always show diffs in new windows, by disabling Settings | Languages & Frameworks | Clojure | REPL Options | Show test result diffs inline in editor.

Previously, it was not possible to classify directories synced via deps as resource or test resource roots. This is now fixed, and this change also has improvements to the selection of directories as test roots as well - see #2400 for details.

There's also another significant change that doesn't have an issue associated with it. When I originally added Cursive's REPL view, IntelliJ's support for the views in consoles (things like REPLs and run output views) was a lot simpler than it is now. It didn't support some of what I needed for Cursive, so I just vendored the code into Cursive and modified it there. However, JetBrains have added more and more features to their console, and they have also become much stricter about use of internal code in plugins and performance-related issues. It was a lot of work to keep up, so I've switched to using their console code and deleted my vendored version. This will have a few effects:

  1. There will hopefully be fewer errors from IntelliJ about Cursive doing things slowly on the Swing dispatch thread.
  2. The REPL output performance will probably be better in cases like sudden vast amounts of output.
  3. Cursive will now be relying on the IntelliJ ANSI code processing. I believe this might be a regression, there are a few things that I supported that I believe they don't, but it's mostly pretty complete.
  4. Cursive's stack trace filtering will now be slightly worse. Previously it would fold any lines from outside your project, now it will only fold lines from clojure.core and nrepl. This is what the other language integrations do. If you want to customise how this works, you can do so at Settings | Editor | General | Console.
  5. The option to visually separate REPL interactions with a horizontal divider has gone, since I couldn't figure out how to support that.

By default, IntelliJ doesn't allow unlimited output in console windows, so if you print a lot of output at once, it might get truncated. You can configure this size at: Settings | Editor | General | Console | Override console cycle buffer size.

Several bugs have been fixed, including issues with import optimization and a UI freeze caused by regex backtracking. Various other fixes and improvements have been made based on error tracker reports, and the icons have been updated to match the new UI guidelines.

Here are the issues:

Added

  • Add support for IntelliJ 2024.2 EAP #2904

Changed

  • Update icons for new UI #2935
  • Allow switching between inlay contents when tests have multiple results #2926
  • Allow switching between test result diffs in diff pane #2924
  • Update support for new interop syntax #2910
  • Report raw test results #2687
  • resources dir incorrectly classified in IntelliJ's project structure #2400

Fixed

  • Tests marked as green despite failure #2940
  • REPL process output not passed through out/err doesn't receive ANSI highlighting #2932
  • Spurious error running Clojure Application run configs with deps #2931
  • Failure details not reported for assertions inside fixtures #2929
  • "Load File in REPL" stopped working #2927
  • Cursive causing UI freezes #2920
  • Inner classes don't present popup to import #2917
  • NumberFormatException trying to connect to babashka-REPL #2909
  • "Load File in REPL" gives IndexOutOfBounds #2896
  • Test failures from matcher-combinators have stopped displaying #2787
  • Expected and actual values are swapped compared to typical Clojure test runners in test diffs #2775
  • Test marked successful in cursive yet fails (correctly) with cognitect test runner #2744
  • Organize imports removes imported Java classes if method calls use reflection #2734
  • Load File in REPL throws exception #2664

Cheers,
Colin

Reply all
Reply to author
Forward
0 new messages