Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Solution diagnostics are missing or stale despite pull diagnostic truth guarantees

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

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

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

Open in Codespaces

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

  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.

More from Nimblesite/SharpLsp

All issues in Nimblesite/SharpLsp

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.