Six steps from zero to IDE
summary
Built a prototype called Metals since November that wires the Language Server Protocol to the build tool and compiler to deliver hover types, go‑to‑definition across modules and Java, rename, completions and refactorings. Diagnostics use the SBT server to publish diagnostics on save (no noisy as‑you‑type false errors). Navigation comes from an indexed SemanticDB emitted by compilation for millisecond lookups, completions combine fuzzy index search and the presentation compiler, and edits are applied via scala-fix patches and workspace/applyEdit. It recovers from broken copy‑paste and is usable in VS Code and experimental Vim clients.
AI-written summary · about
chapters (7)
- 0:00Start
- 3:50Pretty basic features
- 10:25Rest of the talk
- 11:39Language Server Protocol
- 20:11SemanticDB
- 35:01Build Server Protocol
- 36:40Conclusion
related talks
45mMetals - your next IDE?
33mWRITING SCALA OUTSIDE IF INTELLIJ IDEA
47mInteractive development with Dotty
19mExploring Scala Tooling ecosystem
29mExploring Scala Tooling ecosystem
47mMetals rich code editing for Scala in VS Code Vim Emacs
47mLet the IDE do that for you
42mIntegrating Developer Experiences
