Slide 1

Slide 1 text

Rikito Taniguchi (@tanishiking)
 (Weekend OSS contributor to Scala tooling) Tooling for Scala 3 Reactive System Meetup#7

Slide 2

Slide 2 text

Scala 3 has landed 🎉

Slide 3

Slide 3 text

Requirements for transition to Scala 3 Requirements IMO • Stabilizing the compiler • More learning resources • Libraries support for Scala 3 • Tooling support for Scala 3 👈 today’s topic

Slide 4

Slide 4 text

Tooling for Scala 3 scalameta based tools • scalafmt • scala fi x • metals TL;DR Basic Scala 3 supports are already done.
 Ready to use!

Slide 5

Slide 5 text

Scalafmt & Scala 3 scalafmt v3 supports Scala 3 Specify runner.dialect = scala3 .scalafmt.conf

Slide 6

Slide 6 text

Scalafix & Scala 3 Scala fi x v0.9.28 introduces experimental Scala 3 support ! https://github.com/liancheng/scala fi x-organize-imports#scala-3 liancheng/scala fi x-organize-imports works with Scala 3

Slide 7

Slide 7 text

Write your own rule for Scala 3 sbt new scalacenter/scala fi x.g 8 ↑ generates a rule template that runs both on Scala 2 and Scala 3 You can write both SyntacticRule and SemanticRule

Slide 8

Slide 8 text

Metals & Scala 3 Metals works with Scala 3 ! Code Completion Code Navigation / Hover Show inferred type (will be available with Scala 3.1.0)

Slide 9

Slide 9 text

Metals & Scala 3 - Missing features Some advanced features are still missing in Scala 3 😢 Exhaustive case completion Implement abstract members

Slide 10

Slide 10 text

Today’s takeaway • Many tools already have basic supports for Scala 3 ! • Some features are missing… need more e ff ort 💪 • Please try it out, and give us feedback. HAPPY CODING WITH SCALA 3 !!