You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Child of #3535. Highest upside of the four: C# is this fleet's primary ecosystem and it currently has no language server at all, so every C# edit Claude makes goes without diagnostics or navigation.
Current state
csharp-lsp@claude-plugins-official is installable but inert. Claude Code's LSP client returns -32601 "Unhandled method" to three server→client requests csharp-ls sends at initialization:
client/registerCapability
workspace/configuration
window/workDoneProgress/create ← this one aborts solution loading
Result: the Roslyn workspace never initializes, so no symbols, hover, go-to-definition, references or diagnostics ever become available. anthropics/claude-plugins-official#1359, open since 2026-04-11. No fix in the Claude Code changelog through 2.1.252 (grepped for csharp, C#, and all three handler names: zero hits).
This is not a csharp-ls defect — it shipped 0.27.0 on 2026-08-24 and is actively maintained.
We deliberately did not add csharp-lsp to the dotfiles seed for this reason.
Open question this issue must answer first
Which C# language server? Do not assume csharp-ls just because Anthropic's plugin uses it. At minimum compare:
csharp-ls (razzmatazz) — what the official plugin targets. Actively maintained. Known to need the three handlers above.
Microsoft.CodeAnalysis.LanguageServer (Roslyn) — the server behind the official VS Code C# extension, published as a standalone NuGet package and consumed by non-Microsoft editors. Research its licensing terms for use outside VS Code, its handler expectations, and whether it needs fewer client capabilities than csharp-ls or more.
Anything else current. Check what the neovim and Zed C# communities actually run in 2026, since they hit the same "LSP client that isn't VS Code" constraint we do.
The answer may make the shim unnecessary, or may make it mandatory. Decide on evidence.
Then: does a proxying shim work?
If the chosen server needs handlers Claude Code does not implement, a shim that sits between them and answers those three requests itself is the candidate fix (see #3535). The upstream issue proposes the exact responses:
Confirm those are sufficient — the issue reports them as a working local patch, which is evidence but not proof for a proxy sitting outside the client.
Acceptance
A named server, with the reasoning recorded and the rejected alternatives named.
On Windows: the LSP tool appears, and documentSymbol, hover, goToDefinition and findReferences return correct results in a real multi-project solution — not a toy one, since solution loading is exactly what fails today.
The same on WSL/Linux, or an explicit recorded decision that Windows-only is acceptable for now.
Child of #3535. Highest upside of the four: C# is this fleet's primary ecosystem and it currently has no language server at all, so every C# edit Claude makes goes without diagnostics or navigation.
Current state
csharp-lsp@claude-plugins-officialis installable but inert. Claude Code's LSP client returns-32601 "Unhandled method"to three server→client requestscsharp-lssends at initialization:client/registerCapabilityworkspace/configurationwindow/workDoneProgress/create← this one aborts solution loadingResult: the Roslyn workspace never initializes, so no symbols, hover, go-to-definition, references or diagnostics ever become available. anthropics/claude-plugins-official#1359, open since 2026-04-11. No fix in the Claude Code changelog through 2.1.252 (grepped for
csharp,C#, and all three handler names: zero hits).This is not a
csharp-lsdefect — it shipped 0.27.0 on 2026-08-24 and is actively maintained.We deliberately did not add
csharp-lspto the dotfiles seed for this reason.Open question this issue must answer first
Which C# language server? Do not assume
csharp-lsjust because Anthropic's plugin uses it. At minimum compare:csharp-ls(razzmatazz) — what the official plugin targets. Actively maintained. Known to need the three handlers above.Microsoft.CodeAnalysis.LanguageServer(Roslyn) — the server behind the official VS Code C# extension, published as a standalone NuGet package and consumed by non-Microsoft editors. Research its licensing terms for use outside VS Code, its handler expectations, and whether it needs fewer client capabilities thancsharp-lsor more.The answer may make the shim unnecessary, or may make it mandatory. Decide on evidence.
Then: does a proxying shim work?
If the chosen server needs handlers Claude Code does not implement, a shim that sits between them and answers those three requests itself is the candidate fix (see #3535). The upstream issue proposes the exact responses:
client/registerCapability→{ result: null }workspace/configuration→{ result: params.items.map(() => null) }window/workDoneProgress/create→{ result: null }Confirm those are sufficient — the issue reports them as a working local patch, which is evidence but not proof for a proxy sitting outside the client.
Acceptance
documentSymbol,hover,goToDefinitionandfindReferencesreturn correct results in a real multi-project solution — not a toy one, since solution loading is exactly what fails today.cli.jspatching (EPIC: make Claude Code language servers work on Windows — one broken language, not four #3535 non-goal).Explicitly out of scope
Making this work in Claude Code cloud sessions. Language servers do not start there.