Nimblesite / Nimblesite/SharpLsp
C# parity: textDocument/signatureHelp is F#-only — Roslyn sidecar has no handler, host answers null
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 132
- Forks
- 5
- Avg merge
- 6h 24m
- Merged PRs (30d)
- 27
Description
The host routes textDocument/signatureHelp to the language sidecar and maps [FS-SIGHELP] results (src/signature_help.rs). Only the F# sidecar (FCS GetMethods) implements the method; C# requests hit the 'no handler' path and resolve to null, so VS Code shows no parameter hints for C# calls.
Roslyn exposes everything needed (Microsoft.CodeAnalysis.SignatureHelp / overload resolution via SemanticModel.GetSymbolInfo + IMethodSymbol.Parameters). Implement textDocument/signatureHelp in the C# sidecar returning the shared SignatureHelpResult wire shape, and tighten the user-session e2e (tests/e2e_modules/user_session_csharp.rs, the ApplyDiscount signatureHelp block) from the null-tolerant contract to hard shape assertions when this lands.
Found while hardening the Windows user-session e2e suite.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the host routing and shared wire shape in src/signature_help.rs, then locate the C# sidecar's Roslyn request handling. Use Microsoft.CodeAnalysis.SignatureHelp and SemanticModel.GetSymbolInfo with IMethodSymbol.Parameters as described, and update tests/e2e_modules/user_session_csharp.rs in the ApplyDiscount signatureHelp block. Done means C# requests return a non-null shared result and the e2e test asserts its shape.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, rust
- Domain
- devtools, testing-qa
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100