Skip to content

CLaSP and Language Server Public API #68696

@333fred

Description

@333fred

Today, the public APIs for CLaSP (Microsoft.CodeAnalysis.CommonLanguageServerProtocol.Framework) and the C#-specific LSP (Microsoft.CodeAnalysis.LanguageServer) are either not stable (CLaSP) or not public at all (C# LSP). It is not our intention for these to remain this way; Roslyn has always been an extensible and open ecosystem, and we intend to allow extending both the C# LSP, and using CLaSP to build non-C# servers (as we are already doing with Razor and other internal partners). This is a tracking issue for stabilizing these APIs and making them public.

To help drive this, we need real users of the API. CLaSP already has a few consumers inside Microsoft, including the C# server itself, as well as Razor. We also need a real-world consumer to help drive the design of the C# LSP extensibility story; to help this, I plan on making a compiler developer SDK for VS Code, similar to the one available for VS. We'll be using an ExternalAccess layer for this for now, but this consumption will help drive the API design for later public release.

This is also tracking the public API on the vscode-extension side, as that will need a way to interact with the LSP. We intend to start with a barebones "make an LSP request with a custom command type" API that is specifically not a final, stable API at this time. There have already been a couple of requests for public APIs on that repo: dotnet/vscode-csharp#5805 and dotnet/vscode-csharp#5806. @spouliot, could you elaborate on what your extension does and what data it needs access to to help us drive API design?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions