microsoft / microsoft/TypeScript

Extract Constant Refactoring: Add way to extract all instances of selected expression

Offen
#35,349 8 Kommentare 8 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Awaiting More Feedback Suggestion
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
1 T. 19 Std.
Gemergte PRs (30 T.)
117

Beschreibung

From https://github.com/microsoft/vscode/issues/85507

Search Terms

  • refactor
  • extract
  • extract constant / extract function

Suggestion

For the code:

function doStuff() {
    console.log('hello')
    console.log('hi')
    console.log('hello')
}

If I run extract constant on the string 'hello'`, it'd be nice if we offered a way to extract all instances of that expression in the current scope. This would turn the code into:

function doStuff() {
    const text = 'hello'
    console.log(text)
    console.log('hi')
    console.log(text)
}

Use Cases

  • Help reducing duplicated code
  • Speed up code cleanup

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 der Prüfung des ursprünglichen VS Code-Issues #85507 und der TypeScript-Refactoring-Implementierung; der Payload nennt keine Quelldatei oder keinen Test-Einstiegspunkt. Definiere das Verhalten zum Extrahieren jedes übereinstimmenden Ausdrucks im aktuellen Scope und verifiziere anschließend, dass das Beispiel eine Konstante erzeugt und beide übereinstimmenden Vorkommen ersetzt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, typescript
Bereich
developer-experience, tooling
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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