I am the author of Monitor-Guided Decoding (https://github.com/microsoft/monitors4codegen), a Language Model Decoding technique that ensures LLM's can generate code while having access to the same kind of feedback that human coders do (like autocompletion, function signature, number of arguments in functions, names of various APIs available across the codebase, etc.). However, building such a technique required a language-agnostic way to interface with various language specific static analyses and indexing features. Language Server Protocol (LSP) is perfect for this!
However, while LSP solves the problem of having a common communication interface to a variety of language-specific servers, the knowledge about each language server's configuration, various options, information on installation/binaries, availability of various LSP features, right way to invoke those is still language specific, and very spread out. As another HN user (antmarti) put it in a previous thread: "As the maintainer of a language server which is primarily used in VSCode, we've relied on community contributions to add support for other editors (NeoVim, Atom, Rider for example). Information about how to do this is spread out, prone to breaking (depending on how well the implementor understood the domain), and also requires the IDE user to follow manual steps in some cases. I don't even know where I would go or who to speak to if (for example) we changed our download URL format, or added new process architectures."
To solve these problems, and while developing Monitor-Guided Decoding, I built multilspy (https://github.com/microsoft/multilspy). It is a framework to build language server clients, which contains hand-tuned configurations (including setup) for how to connect to various language servers (currently supports Java, C#, Python, Javascript and Rust thanks to the amazing open source community contributions). It is still very much the beginning, and a lot of heavily used language servers and features are not supported, but I believe that providing the community with a central repository for different language server configurations will benefit everyone. I would love to receive your feedback, and if you are a language-server implementor, I invite you to kindly add your configuration to multilspy!
[flagged]