Interactive development with Dotty
summary
Dotty (Scala 3) provides interactive tooling by reusing compiler internals: it serializes TASTy trees into classfiles so IDE features can query compiled libraries, implements a Language Server Protocol backend, and offers an sbt plugin that exports project metadata and launches VS Code via coursier. Core interactive APIs and a minimal language server (~500 lines of code) already provide goto-definition, completion and a debugger proof‑of‑concept, with further features and optimizations planned.
AI-written summary · about
chapters (14)
- 0:00Dotty introduction
- 3:12Scala IDE problems
- 6:06Modern IDE design
- 7:51Compiler reuse for IDE
- 12:31TASTy and compiled code
- 17:53Interactive IDE API
- 19:38IDE portability with LSP
- 23:33Dotty language server
- 26:45Simplified setup and UX
- 29:37Optimizations and future
- 32:52Debugging support in Dotty
- 36:05Lessons and future outlook
- 40:07Dotty’s interactive evolution
- 44:44Live Dotty IDE demo
related talks
40mIntegrating IDEs with Dotty the experimental Scala compiler
29mDotty support in IntelliJ IDEA
44mDotty Support in IntelliJ IDEA
40mThe Journey of a Dotty Diagnostic
58mElegant Scala builds and bootstrapping Dotty with CBT
46mSix steps from zero to IDE
29mExploring Scala Tooling ecosystem
19mExploring Scala Tooling ecosystem
