The Scala 3 compiler
The Scala 3 compiler itself is a powerful migration tool.
It comes with a migration mode that does its best at compiling Scala 2.13 code and it issues migration warnings wherever the code need some care.
Even more than that, it is able to rewrite your code where necessary.
You can learn more about it in the
Scala 3 Migration Mode section.
Leveraging this tool, the community has already migrated a significant number of well-known libraries, forming the Scala 3 Community Build.
Scalafix is a refactoring tool for Scala. It is the complementary tool to assist the compiler in the migration.
The main advantage of Scalafix is that it can operate in Scala 2.13 so that you can prepare the code before the migration. It gives you control on the applied changes by proceeding incrementally, one rule at a time.
In particular, it might be very convenient for automatic or semi-automatic resolution of the type inference and implicit resolution problems, by adding some types and implicit values in the code.
sbt and other build tools
The sbt build tool does already support Scala 3.0 and cross-compilation with Scala 2.13, thanks to the sbt-dotty plugin.
It is able to glue all the migration tools together to provide the best migration experience.
You can learn about cross-building in the sbt Cross-build Manual
Other build tools also support Scala 3.0 and cross-compilation with Scala 2.13, among which Mill.
Metals and other IDEs
Visual Studio Code has its own Scala 3.0 Language Server plugin that you can simply configure by running the
sbt launchIDE task of the
Scala 3.0 support in Metals, including Scala 3.0 Worksheets, has made significant progress. For more details, check the relevant Scala Center Update.
The latest version of the Scala plugin for Intellij Idea already has preliminary support, including Scala worksheets, for Scala 3.0.
Check the list of Scala 3.0 open-source libraries in Scaladex.