| Crates.io | csharp-language-server |
| lib.rs | csharp-language-server |
| version | 0.7.1 |
| created_at | 2025-12-09 11:28:14.723567+00 |
| updated_at | 2026-01-12 18:18:17.367884+00 |
| description | A tool that simplifies installation and running C# language server |
| homepage | |
| repository | https://github.com/sofusa/csharp-language-server |
| max_upload_size | |
| id | 1975321 |
| size | 76,695 |
A wrapper around the language server behind the C# Visual Studio Code extension, Microsoft.CodeAnalysis.LanguageServer, which makes it compatible with other editors, e.g., Helix or Neovim.
This language server is more stable and faster than OmniSharp.
This tool assists the use of Microsoft.CodeAnalysis.LanguageServer:
Microsoft.CodeAnalysis.LanguageServerMicrosoft.CodeAnalysis.LanguageServer as a processinitialize notification from the client, and finds relevant .sln, .slnx or .csproj files and sends them to the server as a custom open notification.Microsoft.CodeAnalysis.LanguageServer is not intended to function as a standalone language server; it is designed to work together with an editor extension. This project is not an extension, it is only a tool to download and run Microsoft.CodeAnalysis.LanguageServer.
As a result, there are a few quirks you should be aware of. These can all be resolved through editor extension code, but not here, as doing so would break communication between the server and client.
Projects are not automatically restored
Diagnostics are pulled before the project is fully loaded
Download the binaries that match your platform under Releases
cargo install csharp-language-server
The tool will download Microsoft.CodeAnalysis.LanguageServer at the first launch. It may take some seconds. To avoid this, you can run csharp-language-server --download before your first launch. This is useful for install scripts.
Helix requires the latest version from git, to support diagnostics.
Use sofusa/helix fork to support multiple projects in same git repository. Until helix-editor/helix#15081 is merged.
[language-server.csharp]
command = "csharp-language-server"
[[language]]
name = "c-sharp"
language-servers = ["csharp"]
vim.api.nvim_create_autocmd('FileType', {
pattern = 'cs',
callback = function(args)
local root_dir = vim.fs.dirname(
vim.fs.find({ '.sln', '.slnx', '.csproj', '.git' }, { upward = true })[1]
)
vim.lsp.start({
name = 'csharp-language-server',
cmd = {'csharp-language-server'},
root_dir = root_dir,
})
end,
})
This is now the default language server for zed 0.218 and later.
No need to configure anything.