Parsing Through the Summer: A Tale of Schemas, Syntax, and Shenanigans
Blog post from Vespa
In this blog post, two interns at Vespa, Magnus Eide-Fredriksen and Theodor Kvalsvik Lauritzen, recount their summer project of implementing a language server for the Vespa Schema Language using the Language Server Protocol (LSP). They detail their journey from learning about Vespa, an open-source platform, to understanding and utilizing LSP to enhance schema file writing experiences in integrated development environments (IDEs). They faced challenges such as finding a suitable parser to generate a concrete syntax tree (CST) for effective language server functions and adapting their solution to work with different editors, particularly addressing issues with IntelliJ's incomplete LSP support. Their efforts culminated in a language server capable of offering key features like diagnostics, code navigation, and semantic highlighting, although some limitations remain, such as the need for better error detection and multi-workspace support. The interns also reflect on their enriching experience working in a tech start-up environment and contributing to a large open-source project, acknowledging the support they received from their team.