Home

Awesome

C# Language Server Protocol

This is an implementation of the Language Server Protocol written entirely in C# for .NET.

Getting Started

  1. git clone
  2. run build.ps1 / build.sh
  3. ...
  4. Profit

Concepts

JSON-RPC

We have an implementation of JSON-RPC designed to implement the JSON-RPC as correctly as possible.

For more information about using the JsonRpcServer on it's own here.

MediatR

Internally this library revolves around the request and response model. To make things easier we use MediatR as core piece that manages how requests and responses are handled.

Microsoft.Extensions.*

We re-use some of the common packages used by .NET Core.

Language Server Protocol

We strive to ensure that we implement all the types, request and notifications that are defined by the Language Server Protocol. Sometimes this is difficult due to the nature of LSP TypeScript upbringing, but the goal is 100% conformance with the protocol itself.

For more information about using the LanguageClient / LanguageServer on it's own here.

Debug Adapter Protocol

We strive to ensure that we implement all the types, events and requests that are defined by the Debug Adapter Protocol.

For more information about using the DebugAdapterClient / DebugAdapterServer on it's own here.

Status

<!-- badges -->

github-release-badge github-license-badge codecov-badge

<!-- badges --> <!-- history badges -->
Azure PipelinesGitHub Actions
azurepipelines-badgegithub-badge
azurepipelines-history-badgegithub-history-badge
<!-- history badges --> <!-- nuget packages -->
PackageNuGet
OmniSharp.Extensions.DebugAdapternuget-version-hefb6om79mfg-badgenuget-downloads-hefb6om79mfg-badge
OmniSharp.Extensions.DebugAdapter.Clientnuget-version-94qjnkon/cda-badgenuget-downloads-94qjnkon/cda-badge
OmniSharp.Extensions.DebugAdapter.Proposalsnuget-version-ajdnjvhbx+0w-badgenuget-downloads-ajdnjvhbx+0w-badge
OmniSharp.Extensions.DebugAdapter.Servernuget-version-f/4jrt4grmdg-badgenuget-downloads-f/4jrt4grmdg-badge
OmniSharp.Extensions.DebugAdapter.Sharednuget-version-2fkn0yzdbhmg-badgenuget-downloads-2fkn0yzdbhmg-badge
OmniSharp.Extensions.DebugAdapter.Testingnuget-version-jppuysmkpfcw-badgenuget-downloads-jppuysmkpfcw-badge
OmniSharp.Extensions.JsonRpcnuget-version-a1bmkwyotvkg-badgenuget-downloads-a1bmkwyotvkg-badge
OmniSharp.Extensions.JsonRpc.Generatorsnuget-version-m6majhsjiw1q-badgenuget-downloads-m6majhsjiw1q-badge
OmniSharp.Extensions.JsonRpc.Testingnuget-version-punkj7/efvjq-badgenuget-downloads-punkj7/efvjq-badge
OmniSharp.Extensions.LanguageClientnuget-version-fclou9t/p2ba-badgenuget-downloads-fclou9t/p2ba-badge
OmniSharp.Extensions.LanguageProtocolnuget-version-vddj9t6jnirq-badgenuget-downloads-vddj9t6jnirq-badge
OmniSharp.Extensions.LanguageProtocol.Proposalsnuget-version-z5fadevkwpng-badgenuget-downloads-z5fadevkwpng-badge
OmniSharp.Extensions.LanguageProtocol.Testingnuget-version-md8c3c/bo/8g-badgenuget-downloads-md8c3c/bo/8g-badge
OmniSharp.Extensions.LanguageServernuget-version-fkxlzvrmzpbw-badgenuget-downloads-fkxlzvrmzpbw-badge
OmniSharp.Extensions.LanguageServer.Sharednuget-version-4htmykprzq1a-badgenuget-downloads-4htmykprzq1a-badge
<!-- nuget packages -->

License

Copyright © .NET Foundation, and contributors.

OmniSharp is provided as-is under the MIT license. For more information see LICENSE.

Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.

Contribution License Agreement

By signing the CLA, the community is free to use your contribution to .NET Foundation projects.

.NET Foundation

This project is supported by the .NET Foundation.

<!-- generated references --> <!-- generated references --> <!-- nuke-data github: owner: OmniSharp repository: csharp-language-server-protocol azurepipelines: account: omnisharp teamproject: Builds builddefinition: 1 -->