microsoft / microsoft/TypeScript
Richer Diagnostic Display Meta-Issue
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.4k
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 117
Description
This issue tracks a couple of different useful ideas for making diagnostics "richer" for display purposes. We've wanted some of these for a while, and they're partially inspired by testing tools like Jest and Mocha. We've also seen tools like Rust, Rome, and Flow prove them out to some extent.
Long-term, you could imagine them being interactive with the a richer compiler client.
Printing Messages Across Lines
Types can get unwieldy, and displaying them inline makes it harder to see where things begin/end.
Type
{ x: string, y: number }
is not assignable to
{ x: string, y: string }
Notice no punctuation at the end. Not sure if we can generalize messages that way.
Also not sure how this plays well with
- tools that parse our output.
- diagnostic elaborations
Highlighted Spans in Messages
Imagine being able to highlight individual sections inside of types to indicate where the issue occurs.
vvvvvvvvvvv
Type '{ a: string; b: number; c: boolean; }' is not assignable to type '{ a: string; b: number; }'.
^^^^^^^^^^^
Object literal may only specify known properties, and 'c' does not exist in type '{ a: string; b: number; }'.
Diff Highlighting in Messages
Basically imagine red being the provided color, with green being an expected color.
Type '[string, number, boolean]' is not assignable to type '[string, string, boolean]'.
^^^^^^ ^^^^^^
rrrrrr gggggg
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Aucun fichier, test ou point d’entrée n’est nommé. Examinez d’abord les trois domaines proposés—les messages multilignes, les segments surlignés et le surlignage des différences—ainsi que leurs problèmes de compatibilité, puis identifiez le code d’affichage des diagnostics et les tests concernés avant de proposer une implémentation ciblée. Pour considérer le travail comme terminé, il faut un design convenu et une validation du comportement de diagnostic sélectionné.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100