This talk summarizes our experiences from building language servers and integrating and using them across Eclipse, VS Code, and Atom. We talk about the good parts, e.g.:
- building lightweight tooling
- the freedom of starting fresh
- building the tooling once and reusing it across various environments
- isolated testing
The bad parts, e.g.:
- no communication among language servers
- do the work twice or more, ship libraries twice or more
And the really ugly parts, e.g.:
- multiplied testing efforts
- no editor/client is like the other, so what to do about clients behaving differently?
We also talk about the integration of our language servers with JDT, in our case to improve the Spring Boot developer experience while hacking Java code.
The talk is based on our experiences building language servers for Spring Boot and related projects and integrating/delivering them with Eclipse distributions (the Spring Tool Suite), VS Code and Atom.
(this is an updated version of the talk that was part of the EclipseCon Europe 2017 program, so additional experiences are shared as well as new solutions to the challenges mentioned before)