Nimblesite / Nimblesite/SharpLsp

C# parity: textDocument/signatureHelp is F#-only — Roslyn sidecar has no handler, host answers null

Open
#174 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.