Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Multilspy – Cross platform framework to develop Language Server Clients (github.com/microsoft)
5 points by LakshyAAAgrawal 43 days ago | hide | past | favorite
multilspy is a cross-platform library designed to simplify the process of creating language server clients to query and obtain results of various static analyses from a wide variety of language servers that communicate over the Language Server Protocol. It is easily extensible to support any language that has a Language Server and currently supports Java, Rust, C# and Python. We aim to continuously add support for more language servers and languages.

Language servers are tools that perform a variety of static analyses on code repositories and provide useful information such as type-directed code completion suggestions, symbol definition locations, symbol references, etc., over the Language Server Protocol (LSP). Since LSP is language-agnostic, multilspy can provide the results for static analyses of code in different languages over a common interface.

multilspy intends to ease the process of using language servers, by handling various steps in using a language server:

* Automatically handling the download of platform-specific server binaries, and setup/teardown of language servers

* Handling JSON-RPC based communication between the client and the server

* Maintaining and passing hand-tuned server and language specific configuration parameters * Providing a simple API to the user, while executing all steps of server-specific protocol steps to execute the query/request.

Some of the analyses results that multilspy can provide are:

* Finding the definition of a function or a class (textDocument/definition)

* Finding the callers of a function or the instantiations of a class (textDocument/references)

* Providing type-based dereference completions (textDocument/completion)

* Getting information displayed when hovering over symbols, like method signature (textDocument/hover)

* Getting list/tree of all symbols defined in a given file, along with symbol type like class, method, etc. (textDocument/documentSymbol)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: