Scala Plugin
Scala Plugin for IntelliJ IDEA and Android Studio
IntelliJ Scala Plugin 2025.3 Is Out!
Scala 3 Support
Scala 3.8 introduces several significant changes, including a new into modifier, the standard library now being compiled with Scala 3, and the minimum required JDK version being updated to 17. Given that the next Scala version, 3.9 LTS, will focus on stabilization, it was important for us to support these new changes from the outset so that developers can start using them right away.
Additionally, the new release includes numerous incremental improvements to Scala 3 features in areas like navigating through macros and export aliases, resolution and completion of extension methods, and better support for type lambdas.

Support for Structural Search and Replace
Scala Plugin now supports Structural Search and Replace (SSR) in IntelliJ IDEA. This is a powerful tool designed to help developers search for and replace code patterns based on code structure. SSR supports modifiers and constraints to refine search results – for example, searching only for final fields or for methods with specific argument types. In a highly flexible language like Scala, where different coding styles are common, this feature provides a significant advantage, especially for large codebases.
You can access SSR through two similar dialogs: Structural Search (via Edit | Find | Search Structurally) and Structural Replace (via Edit | Find | Replace Structurally). In each dialog, you can create new templates or choose from existing ones, then refine your search with modifiers. Once you define the pattern, you can use it to find matching code snippets in Structural Search, or specify a replacement pattern in the Structural Replace dialog to perform automatic replacements.
Read more about Structural Search and Replace on its dedicated help page.
Build tool improvements
In anticipation of sbt 2.0, we’ve added initial support for Scala 3 in build files. We have also enhanced Mill support by resolving issues that occurred when Mill projects entered a bad state during import, as well as by improving navigation through Mill source files. Furthermore, X-Ray mode can now be used in Mill build scripts.

Other bug fixes
The new release includes numerous bug fixes. The Refactor | Rename action now correctly updates imports, and imports of objects nested in classes are resolved properly. We have eliminated an invalid “unnecessary parentheses” warning in type patterns with function literals and removed a false “Method overrides nothing” error when overriding methods with lower bounds on generic types with wildcards. On the other hand, in enums with constructors, we now highlight errors when an enum case extends an enum without providing constructor arguments.
Performance improvements
Performance has also been improved. Choosing an editor action is now faster, and we have fixed occasional freezes in actions dependent on the UI thread, like Show Type Info, Show Implicit Argument, Show Implicit Conversion, Copy Type, and others.
If you go to Settings | Languages & Frameworks | Scala | Editor and enable compiler-based highlighting, you will see a new checkbox below the error highlighting field: “Disable built-in inspections“. This can help improve the IDE’s performance. Built-in inspections add an extra layer of highlighting logic beyond what the compiler provides. While they are often useful, you may want to disable them if IntelliJ IDEA is taking too long to highlight your code, and you think that, in your case, the compiler’s highlighting alone suffices.

Last but not least, when you go to Settings | Languages & Frameworks | Scala | Performance, you will find a list of tips on how to check and improve the performance of IntelliJ IDEA and the Scala Plugin, as well as instructions on how to contact us with questions or to report issues. We are actively working on further performance improvements. In the near future, expect new optimizations, settings, and blog posts detailing these developments.
X-Ray mode, a new refactoring, and community contributions
X-Ray mode can now display type parameters. Single-character variable names are no longer incorrectly expanded with {} in interpolated strings, and we’ve introduced a new refactoring: When adding an argument to a method call, you can now select “Add parameter(s) to method” to automatically update the method’s declaration.
A special thanks to the Scala community! On October 9, in collaboration with the ScalaWAW meetup group, we hosted a Scala Plugin Hackathon at the JetBrains Warsaw office. Four of the improvements in this release were developed during the event:
- Fix for “unnecessary parentheses” in function types
- Proper handling of single-character variable names in string interpolation
- The new “Add parameter(s) to method” refactoring
- Highlighting missing enumeration constructor parameters
We’re grateful to all the participants for their contributions in making the IntelliJ Scala Plugin even better!
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