Solution diagnostics are missing or stale despite pull diagnostic truth guarantees

Aperta
#441 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
csharp, fsharp, typescript, vscode

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
TypeScript
Stelle
178
Fork
10
Merge medio
2h 14m
PR unite (30g)
78

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Nimblesite/SharpLsp

Tutte le issue di Nimblesite/SharpLsp

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.