LSP has gained significant traction with implementation for over 25 languages and most major editors. However, LSP does not specify how language servers communicate with build tools. Currently, every IDE and language server must implement custom integrations for multiple build tools in order to extract compilation information such as classpaths and source directories.
The Build Server Protocol is an attempt to formalize the communication between language servers and build tools in order to provide a seamless workflow when importing a project in your IDE or editor. In this talk, we explain the motivation behind BSP and its current implementations in both clients (IDEs) and servers (build tools). We zoom on in how BSP is being implemented in Intellij, what's its state of the art and how it can simplify its integrations with JVM-based build tools like sbt, bloop, CBT, Maven or Gradle.