microsoft / microsoft/TypeScript
Extract to constant in enclosing scope should optionally also replace later usage
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
Given this code:
public setParts(lineNumber: number, parts: GhostTextPart[]): void {
const foreground = this.themeService.getColorTheme().getColor(ghostTextForeground);
let opacity: string | undefined = undefined;
let color: string | undefined = undefined;
if (foreground) {
opacity = String(foreground.rgba.a);
color = Color.Format.CSS.format(opaque(foreground))!;
}
const borderColor = this.themeService.getColorTheme().getColor(ghostTextBorder);
let border: string | undefined = undefined;
if (borderColor) {
border = `2px dashed ${borderColor}`;
}
I would like to factor our this.themeService.getColorTheme() and extract it into its own constant. This should include all later usages.
Since there could be side effects in between, I suggest to do it only if later occurences are also selected.
This is my current workflow and I don't feel smart doing it like that. Multicursors don't really help here.

Also, it would be nice if the name of the new local is heuristically derived from the expression ((...).getFooBar(...) -> fooBar`).
I'm willing to do a PR if I get some pointers.
Let's make the editing experience in VS Code even more amazing 😉
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 localiser l’implémentation de la refactorisation extract-to-constant et ses tests dans le dépôt TypeScript. Reproduisez ensuite l’exemple TypeScript présenté, puis suivez la manière dont les limites de la sélection et les occurrences ultérieures sont gérées. Le travail est terminé lorsqu’une extraction facultative de la portée englobante peut inclure les utilisations ultérieures uniquement lorsqu’elles sont sélectionnées, le nommage heuristique étant considéré séparément.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100