IntelliJ Scala Plugin 2022.3 Is Out!
This release has been again focused on Scala 3, but there are also quite a few other improvements.
Better Scala 3 support
In v2022.3, we’ve introduced a large number of upgrades to provide better Scala 3 support. The IDE now supports parameter untupling and quoted patterns, and it features many improvements to the support for match types and type variables. There is now type inference for type variables, and they are parsed correctly for pattern-matching purposes. Named arguments in the trait constructor are now correctly handled, and you can use an action to quickly create a Scala 3 enum file or just an empty Scala file for top-level definitions. We also have numerous TASTy Reader enhancements, resulting in better highlighting accuracy and improved editor performance.
Parameter types and context bounds
Parameter info is now displayed for type parameters (previously it was only displayed for value parameters), and it is now smarter. Formerly, you may have seen that in the Parameter Info popup, the context bounds were desugared, showing implicit parameters. Now the code in the prompt is resugared and more readable. This might be especially useful for maintainers of libraries that use higher-kinded types.
New Can be private inspection
Sometimes it is possible to make a public class, method, or field private or protected. When the code is complex, however, it can be challenging to know whether this is the case. A new Can be private inspection now helps you be sure, and it will also propose a quick-fix. By actually marking members that can be private as private, you can keep interfaces separate from implementation details, making it easier to understand the code. This also reduces the noise during autocompletion, making the process of using it easier and faster, with less cognitive load incurred. It even improves the performance of the compiler and of the IDE.
Create parameter from usage
If you have an unresolved symbol inside a method, there is now a new quick-fix that lets you add this symbol to the list of the method’s parameters.
But wait, there’s more!
If your project requires the compile order to be first Java, then Scala, and you use SBT or Maven, you might have encountered an issue where after refreshing the project from the build script, the order is automatically changed to “Mixed”. This is fixed now.We now have previews for quick-fixes displayed by default when it’s applicable, we support the new Settings Sync plugin, and we made performance improvements to actions such as checking if a class member has overrides, expensive lookups of elements, and to the compile server’s performance.
We dropped support for some old and unused elements of the Scala ecosystem:
- Scala scripts
- Scala Server Pages
- Lift framework
The IntelliJ Scala plugin team
IntelliJScala @ Scala Days 2023 Madrid
On September 12 – 14, the Scala Plugin team was in Madrid for the Scala Days conference. JetBrains was a Gold Sponsor for the event and we are very proud of it. We came to Madrid with a booth, merchandise, and a talk about the IntelliJ Scala Plugin. The Scala Plugin has seen a lot of improvements…
IntelliJ Scala Plugin 2023.2 Is Out!
Better Scala 3 Support IntelliJ IDEA 2023.2 brings enhanced Scala 3 support, with a focus on providing a streamlined development experience. Notable improvements include fixes for Scala 3 enum highlighting, navigation to enum definitions, and the correct resolution of enum cases in various contex…
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 a…
Performance tips for IntelliJ Scala Plugin
A full-blown IDE is one of the most complicated applications you can find on an average laptop. This is why we – the Scala plugin team at JetBrains – from time to time receive reports that our product lags in certain situations or works slowly in general. In some of these cases we can help, but in o…