-
Notifications
You must be signed in to change notification settings - Fork 419
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
Question about state and future of omnisharp #2663
Comments
OmniSharp is no longer the default, but is still available as an option.
Microsoft wants to provide an LSP for their language so they packaged it into their VS Code extension.
The Roslyn language server is written in C#. See https://github.com/dotnet/roslyn/tree/main/src/LanguageServer/Microsoft.CodeAnalysis.LanguageServer
OmniSharp is a community project with a very small community. It will make progress slowly. Contributions are welcome.
When I have time to contribute, that is what I will be working towards. I would love to think I will get there before .NET 10 is released.
vscode-csharp is the VS Code C# extension. There are similar extensions for neovim which use the new Roslyn language server, such as https://github.com/seblyng/roslyn.nvim. |
Thanks for quick reply! -> There are similar extensions for neovim which use the new Roslyn language server, such as https://github.com/seblyng/roslyn.nvim -> new Roslyn language server |
Yes, they both implement language servers for the C# language and they both use the Roslyn APIs to provide these language services. The OmniSharp LSP implementation is at https://github.com/OmniSharp/omnisharp-roslyn/tree/master/src/OmniSharp.LanguageServerProtocol and wraps the OmniSharp O# Protocol handlers from https://github.com/OmniSharp/omnisharp-roslyn/tree/master/src/OmniSharp.Roslyn.CSharp/Services. The LSP framework it is built on is at https://github.com/OmniSharp/csharp-language-server-protocol. The Roslyn LSP implementation is at https://github.com/dotnet/roslyn/tree/main/src/LanguageServer/Microsoft.CodeAnalysis.LanguageServer. The LSP framework it is built on is at https://github.com/dotnet/roslyn/tree/main/src/LanguageServer/Microsoft.CommonLanguageServerProtocol.Framework.
The OmniSharp LS using the O# protocol provides a very similar core language server experience to the Roslyn LSP. Below I will note some of the Pros of each. O# LS Pros: Roslyn LSP Pros: Separately OmniSharp using LSP leaves a lot to be desired. See dotnet/vscode-csharp#5429 |
Thank you very much for the explanation! |
Hi! I wanted to ask about current state and future of omnisharp project
I've found out that vscode-csharp dropped omnisharp in favor of built-in language-server:
dotnet/vscode-csharp#5708
so I have following questions:
I see basically the same contributors in both projects that's why I'm asking.
I see big milestone here
#2647
, but I also see silence in contribution for 2 months https://github.com/OmniSharp/omnisharp-roslyn/commits/master/
Because now it's kind of sad situation for C# developers that use neovim:
Omnisharp has high severity bug: InlayHint error #2655,
but there are no mature alternatives to use
The text was updated successfully, but these errors were encountered: