Skip to content

feat(language server): add csharp-ls as a new option#77

Open
rbstp wants to merge 1 commit into
zed-extensions:mainfrom
rbstp:add-csharp-ls
Open

feat(language server): add csharp-ls as a new option#77
rbstp wants to merge 1 commit into
zed-extensions:mainfrom
rbstp:add-csharp-ls

Conversation

@rbstp
Copy link
Copy Markdown

@rbstp rbstp commented May 5, 2026

Adds csharp-ls as a third language server option alongside OmniSharp and Roslyn. csharp-ls is an F#-based C# language server distributed as a dotnet tool NuGet package; it is unrelated to the deprecated SofusA/csharp-language-server wrapper referenced by #11 and #57. The naming overlap is unfortunate: the upstream project markets itself as csharp-ls precisely to reduce that confusion.

The use case is different from Roslyn. csharp-ls is a leaner alternative: cold start is faster, memory footprint is lower, and it stays responsive on small projects or quick edits where spinning up a full Roslyn workspace is overkill. Roslyn remains the right choice for the deepest Microsoft tooling; csharp-ls is for the case when you want something snappy.

To use it:

{
  "languages": {
    "CSharp": {
      "language_servers": ["csharp-ls", "!omnisharp", "!roslyn"]
    }
  }
}

It partially addresses #62, it is running better on my own M3 mac for smaller projects.

@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 5, 2026

We require contributors to sign our Contributor License Agreement, and we don't have @rbstp on file. You can sign our CLA at https://zed.dev/cla. Once you've signed, post a comment here that says '@cla-bot check'.

@rbstp
Copy link
Copy Markdown
Author

rbstp commented May 5, 2026

@cla-bot check

@cla-bot cla-bot Bot added the cla-signed label May 5, 2026
@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 5, 2026

The cla-bot has been summoned, and re-checked this pull request!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant