microsoft / microsoft/TypeScript

Extract to constant in enclosing scope should optionally also replace later usage

Abierto
#44,534 4 comentarios 3 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Awaiting More Feedback Suggestion
Lenguaje dominante
Go
Estrellas
111k
Forks
14.4k
Merge medio
1 d 19 h
PR fusionados (30 d)
117

Descripción

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.

recording

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 😉

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza localizando la implementación de la refactorización extract-to-constant y sus pruebas en el repositorio de TypeScript. Reproduce el ejemplo de TypeScript mostrado y, después, sigue cómo se gestionan los límites de la selección y las apariciones posteriores. Se considera terminado cuando una extracción opcional del ámbito envolvente puede incluir usos posteriores solo cuando están seleccionados, y la asignación heurística de nombres se considera por separado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
typescript
Área
tooling
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.