Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Purpose of this library is not immediately obvious #1017

Open
mattgallagher92 opened this issue Sep 12, 2023 · 3 comments
Open

Purpose of this library is not immediately obvious #1017

mattgallagher92 opened this issue Sep 12, 2023 · 3 comments

Comments

@mattgallagher92
Copy link

I've come to this repo because I've seen a project which refers to it to create a language server.

After spending a while digging around, it's not obvious to me whether this is meant to be a language server for the C# language (which the project I've seen has hijacked), or a library that can be used to write a language server implemented in .NET (for any language). My assumption is that it's the latter, but I think it would be worth making it obvious with a sentence or two at the beginning of the README.

One example could be "csharp-language-server-protocol is a library that makes it easy to create language servers (and clients) that run on .NET, by abstracting away boilerplate. It can be used to implement language servers for any language."

@andyleejordan
Copy link
Contributor

It is the latter. See this pinned issue for examples: #193 But yes the documentation (and project as a whole) is needing some updates.

@mattgallagher92
Copy link
Author

Thanks for clarifying!

@Simonl9l
Copy link

Simonl9l commented Nov 5, 2023

If your "language" for which you want LSP support already has a compiler written in C# it's an obvious step to use this library, and the sample is a good stating point (was for me).

Also I'd suggest you take a look at the Azure Bicep implementation as this is also based on OmniSharp and has the entire Language ecosystem for other hints of how to make it all work together.

A good place to start is with a TextDocumentSyncHandler : TextDocumentSyncHandler implementation that you can hook in some kind of Compilation Manager via DI, so you can track compilation for each source file as they change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants