News Releases Scala Scala programming

IntelliJ Scala Plugin 2023.1 Is Out!

Improved support for braceless Scala syntax

IntelliJ IDEA can now desugar braceless Scala code properly, and it handles refactorings where the “fewer braces” feature is used. It also supports braceless syntax in worksheets and correctly interprets indentation when you move extensions methods up and down in your code.

The indentation of the extension method is carried over correctly
The indentation of the extension method is carried over correctly

Streamlined import management

If you use compiler-based highlighting, until now all imports have been marked as used. Scala 3.3, however, introduced a new compiler option, -Wunused:imports. The IDE can now identify unused imports if your project uses this option. We’ve also fixed the auto-import action for Enums.

The Scala plugin can now identify unused imports when you use compiler-based highlighting

Better support for sbt projects 

When you have an empty module and want to create the root directory for the source code, you can use the New Directory dialog, which contains some helpful suggestions. With v2023.1, this dialog is now available for sbt projects, as well.

You can also specify the sbt launcher’s parameters in Settings/Preferences | Build, Execution, Deployment | Build Tools | sbt.

You can now specify the sbt launcher’s parameters
You can now specify the sbt launcher’s parameters

On top of that, we improved support for sbt cross-built projects. Now you can use JVM/JS/Native code from shared sources – completion, navigation and code highlighting will work.

And the Find Usages action now searches for symbols in sbt files.

Code editing improvements for Scala 3

We’ve improved the performance of Scala 3 highlighting when many implicit parameters are imported and are needed to parse the code, for example, when the Cats library is being used. IntelliJ IDEA 2023.1 also features many syntax support improvements, such as the proper automatic generation of overriding methods with using clauses.

The hint shows types for the using clause inferred from the available given declaration
The hint shows types for the using clause inferred from the available given declaration

Upgraded Scala inspections

The Unused declaration inspection has received a number of fixes and improvements. IntelliJ IDEA can now detect symbol usage in your project’s XML files. The inspection also distinguishes between references to terms and references to types, not tagging the one as in use if it is actually the other that is. The Can be private inspection was updated, as well. For example, you will no longer see highlighting for top-level definitions in worksheets and local classes. For recursive calls, you will now see a gutter icon to the left of the line with the call.

The classes is marked as used because of its mention in pom.xml
The classes is marked as used because of its mention in pom.xml

Improvements for Scala 3 and Scala 2 decompilers

IntelliJ IDEA 2023.1 brings numerous fixes and improvements to the Scala 3 and Scala 2 decompilers. The output of decompiling Scala 2 and Scala 3 bytecode has been unified and is now easier to read.

As always, your feedback is very welcome. Please report any issues you find to YouTrack. If you have any questions, feel free to ask us on Discord.

Happy developing!

The IntelliJ Scala plugin team