microsoft / microsoft/TypeScript
Expose more internal api for making language service plugins.
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
Search Terms
language service plugin api refactor codefix vscode
Suggestion
ts.refactor.registerRefactor
A more standard way to make refactor rather than hook the language servies functions.
And refactor is a rare api that I do not need to write ui code or command for vscode.ts.textChanges.*
Use this, I can easily generate code or modify code that conform the current code format style.
Especially you don't expose thets.formatting.*ts.TypeChecker.getTrueType()ts.TypeChecker.getFalseType()
TheTypeFlags.BooleanLiteralis not enough to determine it istrueorfalse.
Use Cases
https://github.com/heroboy/generate-typescript-switch-case-for-enum-type-language-service-plugin
Checklist
My suggestion meets these guidelines:
- This wouldn't be a breaking change in existing TypeScript/JavaScript code
- This wouldn't change the runtime behavior of existing JavaScript code
- This could be implemented without emitting different JS based on the types of the expressions
- This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
- This feature would agree with the rest of TypeScript's Design Goals.
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
Commencez par examiner les API des plugins du service de langage TypeScript et les points d’entrée demandés : ts.refactor.registerRefactor, ts.textChanges., ts.formatting. et TypeChecker.getTrueType()/getFalseType(). Comparez-les avec le cas d’utilisation lié generate-typescript-switch-case-for-enum-type-language-service-plugin ; la définition de terminé nécessite une proposition d’API publique au périmètre défini et approuvé, plutôt que l’implémentation de toutes les demandes listées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers, devtools
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 20/100