Six steps from zero to IDE

“The Scala IDE situation is quite possibly the worst out of all the industrial languages in existence. They’re all terrible, especially VS Code or Atom. Just use IntelliJ and hope for the best.”
r/scala, 10 points, 2 days ago
Why is it so hard to build a good IDE for Scala? Compared to JavaScript or Clojure, one would think that static types in Scala make it easier to provide a great editor experience. With the introduction of the Language Server Protocol, things may be changing for the better.
The Language Server Protocol aims to solve a long-standing issue: implement a “language server” once and automatically support a wide range of client editors. The protocol was published in 2016 and has since then gained significant traction with implementation for over 26 programming languages and most major editors. A search on the VS Code extension marketplace yields 5 (!) hits for Scala language servers. A working group has recently been elected by the community to consolidate efforts around Scala language servers.
Learning objectives
In this talk, we will build an IDE! You will learn about the Language Server Protocol, how it’s impacting the future of Scala tooling and help you explore the zoo of ongoing efforts to build Scala language servers. I will share my experiences from implementing Metals, a language server that supports cross-language code navigation, refactoring, linting and formatting. Hopefully, you will become inspired at the end to join the efforts in building a bright future for Scala tooling.
Ólafur Páll Geirsson is a software developer at the Scala Center where he works on developer tools. He is the author of scalafmt and scalafix.