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!
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 !!