Long chains with some long arguments followed by method calls or property accesses could be more harmonious
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 58/100
Línea de trabajo
Start at the parser's chain-formatting logic, which currently adds backslashes and vertically aligns chained calls when the chain is too long. Use the provided GDScript example as the reproduction case; done means preserving the unwrapped first call and keeping the trailing method calls on one line when the long arguments already force a break.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
From a course module we're working on. Input:
tween.tween_method(
func(t: float) -> void:
if move_and_collide(start.lerp(destination, t) - global_position):
tween.kill()
_transition_to_state(State.NORMAL),
0.0, 1.0, duration
).set_trans(Hook.PULL_TRANS).set_ease(Hook.PULL_EASE)
Current output:
tween \
.tween_method(
func(t: float) -> void:
if move_and_collide(start.lerp(destination, t) - global_position):
tween.kill()
_transition_to_state(State.NORMAL),
0.0,
1.0,
duration,
) \
.set_trans(Hook.PULL_TRANS) \
.set_ease(Hook.PULL_EASE)
In this case, it's probably more readable as a result to keep the tail end of the chain after the long arguments on a single line if possible. And for the first line, we definitely want not to wrap.
The parser is seeing this as a chain too long to fit on a single line, and it tries to consistently add backslashes for vertical chains of method calls and align the property accesses/method calls vertically.
Desired output:
tween.tween_method(
func(t: float) -> void:
if move_and_collide(start.lerp(destination, t) - global_position):
tween.kill()
_transition_to_state(State.NORMAL),
0.0,
1.0,
duration,
).set_trans(Hook.PULL_TRANS).set_ease(Hook.PULL_EASE)
- Lenguaje dominante
- Rust
- Estrellas
- 458
- Forks
- 40
- Merge medio
- 1 d 15 h
- PR fusionados (30 d)
- 4
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de GDQuest/GDScript-formatter
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
GDQuest/GDScript-formatter#362 · 2 comentarios ·
-
Godot 4.8.dev6 Parse Error Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
GDQuest/GDScript-formatter#359 · 9 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
GDQuest/GDScript-formatter#327 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
GDQuest/GDScript-formatter#361 · 3 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
GDQuest/GDScript-formatter#354 · 2 comentarios ·
Todos los issues de GDQuest/GDScript-formatter
Issues similares
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
yantrikos/yantrik-os#255 ·
-
Replayed reasoning items send "content": null, which the Responses API schema does not permit Abiertobug CLI custom-model
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
raphamorim/rio#1956 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
rust-bitcoin/rust-bitcoin#6930 · 1 comentario ·