microsoft / microsoft/TypeScript

Add structure to diagnostics to enable nicer diagnostic output and interactivity in tooling such as IDEs

Offen
#57,180 6 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

In Discussion Suggestion
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.4k
Ø Merge
1 T. 19 Std.
Gemergte PRs (30 T.)
117

Beschreibung

🔍 Search Terms

diagnostics, interactive errors, structured diagnostics, error formatting

✅ Viability Checklist
⭐ Suggestion

change diagnostics to some structured data instead of plain strings. At its simplest this would be including an array of the sources for the text that populates the substitution variables in the diagnostic message strings. If we also keep a cache or recent sources and include a key into that cache in the diagnostic, then we can provide callback functionality for tools to get more information in both the TS api and tssserver.

📃 Motivating Example

IDEs can provide much richer displays for error messages and even add interactivity. Imagine having syntax highlighting for types or being able to click to "go to definition" in an error message.

A very rough proof of concept showing an enhancement to the problems view in VsCode

https://github.com/microsoft/TypeScript/assets/84949734/25f8366d-a94e-44fb-bfd2-9f204be96097

💻 Use Cases
  1. What do you want to use this for?
    a. Better display and interaction with error message
  2. What shortcomings exist with current approaches?
    a. Currently only possible by parsing error text.
    b. Advanced usages require traversing the AST to find the nodes and types that contribute to the error
  3. What workarounds are you using in the meantime?
    a. see 2.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit den über die TypeScript API und tssserver bereitgestellten Diagnosen und vergleiche dann die aktuellen Diagnosen als einfache Zeichenketten mit den vorgeschlagenen strukturierten Daten und Quellinformationen. Überprüfe, wie IDE-Tools derzeit Nachrichten parsen oder den AST durchlaufen; fertig ist die Aufgabe, wenn Tools umfangreicheren Diagnosekontext abrufen und interaktive Darstellungen unterstützen können, ohne das bestehende Laufzeitverhalten zu ändern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
developer-experience, tooling
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.