IntelliJ IDEA 2022.3 Help

Troubleshoot common Scala issues

Check the following answers on most common scala/sbt questions that can help you solve compiler, performance or code highlighting issues you might come across while working with your project.

Why is my code highlighted incorrectly?

If the type-aware highlighting highlights the correct code, try to disable the highlighting locally.

  1. Highlight the code and on the main menu select Code | Surround With.

  2. Select the / * _ * /.../ * _ * / option from the list.

    T surround with action

    The error is not highlighted anymore.

    T surround with action result

Why do I get Assertion error when I use the Make Project command?

Change the Scala version to 2.12 and later. We also recommend that you use unique names for private methods in value classes.

Why am I unable to compile my Scala project?

In most cases your project JDK is not compatible with Scala or sbt version, try to change the Scala Compile Server SDK.

  1. Press Ctrl+Alt+S to open Settings dialog.

  2. From the options on the left, select Build, Execution, Deployment | Compiler | Scala | Scala Compiler Server.

  3. In JVM SDK field specify the appropriate SDK.

    Scala compiler server

    We recommend that you switch to Java 8 SDK since the Scala version 2.12, and sbt versions 1.10 and later are not compatible with older Java SDK versions.

How do I resolve OutOfMemory exceptions when I compile my Scala project?

To fix Out Of Memory issues with the Scala compiler, increase the heap size in the JVM maximum heap size field of the Scala compiler server settings located in File | Settings | Languages & Frameworks.

Scala server settings

How do I migrate an IDEA-based Scala project to the sbt project?

You would need to add the build.sbt file to your project, describe your whole project inside build.sbt and then re-import the project.

We recommend that you choose the sbt-based project right from the start.

New sbt project

Does IntelliJ IDEA support the sbt's model of integration tests?

When you build sbt projects, keep in mind that the IDEA project model doesn't really have the same concept of configurations as sbt does, so only compile and test are fully supported. For other cases we recommend that you run the build from the integrated sbt shell.

How do I resolve OutOfMemory exceptions in my sbt project?

When your sbt process doesn't have enough memory, increase maximum heap size in the sbt settings (click the App general settings located in the sbt projects tool window).

sbt settings

How do I stop the Scala plugin from marking my imports as unused and removing them?

Figuring out if an import is used or not is complex and costly, and sometimes - for example in some cases of implicit conversions imported from another package - the Scala plugin may wrongly mark your import as unused. And then, when you call the "Optimize Imports" action, that import will be removed.

Consider this example:

unused import
implicit mapper

Notice that import Mappers._ in HelloWorld is marked as unused. You can make IntelliJ IDEA and the Scala plugin aware that this import is actually used by opening the quick-fix popup menu and choosing Mark import as always used in this project.

mark import as unused

The import will be added to the list of imports always considered to be used. You can modify the list in Preferences | Editor | CodeStyle | Scala | Imports.

import panel

It might also happen that your import is marked as unused and removed immediately, preventing you from using the quick-fix. It means that you have enabled the Optimize imports on the fly mode. Go to Preferences | Editor | General | Auto Import and turn it off.

auto import

Last modified: 19 January 2023