Awesome
C# Language Server Protocol
This is an implementation of the Language Server Protocol written entirely in C# for .NET.
Getting Started
- git clone
- run
build.ps1
/build.sh
- ...
- 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.
Microsoft.Extensions.Configuration
for common configurationMicrosoft.Extensions.DependencyInjection
for common Dependency Injection abstractionsMicrosoft.Extensions.Logging
for logging.
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 --> <!-- badges --> <!-- history badges -->Azure Pipelines | GitHub Actions |
---|---|
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 -->