Open-source, editor-agnostic .NET language tooling for C# and F#.
Available today in VS Code. Rider, Zed, Neovim, Helix, and Emacs support is on the way.
Use the editor you already like. SharpLsp provides the same C# and F# intelligence behind the scenes.
Roslyn powers C# semantics. FSharp.Compiler.Service powers F#. F# is a first-class target, not a bolt-on.
MIT licensed. No per-seat licenses, no Windows VM requirement, no editor-specific language engine.
SharpLsp is building the .NET development stack that should already exist: Visual Studio/Rider-grade language intelligence, solution awareness, diagnostics, refactoring, package management, debugging, and profiling without forcing every developer into the same IDE.
.NET tooling is powerful, but the experience is fragmented:
- Visual Studio still sets the benchmark for .NET tooling, but it is Windows-only.
- C# Dev Kit is tied to VS Code, carries enterprise licensing constraints, and does not replace Visual Studio's profiler or performance tooling.
- Rider is excellent, but its .NET intelligence lives inside Rider and cannot be reused by the rest of your team's editors.
- F# too often trails behind C# instead of receiving equal first-class tooling.
- Neovim, Zed, Helix, Emacs, and other editors are left stitching together partial community workflows.
SharpLsp treats language tooling as infrastructure. The editor should be a preference, not the place where the .NET language engine is trapped.
SharpLsp is split into three parts:
- Rust host: owns editor communication, request routing, virtual files, tree-sitter syntax work, and sidecar lifecycle.
- C# sidecar: hosts Roslyn for semantic C# features.
- F# sidecar: hosts FSharp.Compiler.Service for semantic F# features.
That split keeps the editor protocol fast and portable while letting the .NET compilers do the semantic work they are built for.
Install the SharpLsp extension from the VS Code Marketplace. The extension ships with the SharpLsp engine and both sidecars — no Rust toolchain or separate install required.
Rider, Zed, Neovim, Helix, and Emacs support is coming soon.
Full documentation is available at sharplsp.dev/docs.
For the full argument behind the project, read Why .NET Needs Editor-Agnostic Tooling.
Want to build from source or contribute? See the Contributing guide.