Solution diagnostics are missing or stale despite pull diagnostic truth guarantees
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- csharp, fsharp, typescript, vscode
- Domain
- backend-api-design, testing
Research direction
The issue names no implementation files, so start by locating diagnostic capability negotiation, workspace/diagnostic handling, and solution-wide refresh/configuration entry points. Reproduce the reported failures with the 12 VSIX regressions and the three native LSP process regressions, using their real compiler checks as the baseline. Done means diagnostics appear, clear, and report current ranges and severity without duplicates, while configuration transitions work and sidecar failures remain request failures.
Written by the indexing model from the issue text.
Description
The diagnostics behavior promised at https://sharplsp.dev/blog/pull-diagnostics-without-phantom-errors/ is not implemented reliably in the released product.
Confirmed on real F# and C# projects and a real Windows VS Code extension host:
- VS Code advertises both modern pull and publish-diagnostic client capabilities, but SharpLsp omits diagnosticProvider and selects push.
- workspace/diagnostic is an empty stub, so closed-file compiler errors are missing.
- Changes to closed source files and unsaved dependency edits do not reliably refresh solution diagnostics or clear errors without restarting the window.
- Solution-wide analysis must default on and support a live configuration opt-out while open-file diagnostics continue working.
- Per-document sidecar failures must remain request failures, not empty clean diagnostic reports.
Proof before fixing: 12 new real VSIX regressions fail with the unchanged production binaries. Each fixture first invokes the real dotnet compiler to independently prove FS0001 or CS0029; a hover on a different clean file verifies the engine has loaded. Three complementary native LSP process regressions also fail: missing workspace reports, incorrect modern capability negotiation, and missing closed-file F# legacy push diagnostics (C# errors do arrive).
The fix must preserve the published diagnostic truth guarantees. Repeated fix/regression cycles must prove appearance, clearing, current source ranges/severity, absence of duplicates, and correct config transitions. Related analyzer false negatives are already tracked in #343.
- Dominant language
- TypeScript
- Stars
- 168
- Forks
- 9
- Avg merge
- 2h 49m
- Merged PRs (30d)
- 60
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
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.
More from Nimblesite/SharpLsp
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Nimblesite/SharpLsp#468 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Nimblesite/SharpLsp#461 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Nimblesite/SharpLsp#447 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Nimblesite/SharpLsp#444 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Nimblesite/SharpLsp#442 ·
Maintainers usually reply within 1 day
All issues in Nimblesite/SharpLsp
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
awesome-dsh-plugin/awesome-dsh-plugin#9184 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
farion1231/cc-switch#8829 ·
Maintainers usually reply within 1 day
-
[core-client] Remove unused hand-maintained transport helpers after the definition-table cutoverOpendoc-audit enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100