Discussion: Long chains with some long arguments followed by method calls or property accesses could be more harmonious
まだ誰も着手していません。
評価
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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)
- 主要言語
- Rust
- スター
- 464
- フォーク
- 39
- 平均マージ
- 1日 15時間
- マージ済み PR(30日)
- 4
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
GDQuest/GDScript-formatter のほかの issue
-
upstream
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
GDQuest/GDScript-formatter#363 · コメント 2 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
GDQuest/GDScript-formatter#354 · コメント 2 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
GDQuest/GDScript-formatter#353 · コメント 3 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 63/100
GDQuest/GDScript-formatter#348 · コメント 3 件 · リアクション 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
GDQuest/GDScript-formatter#341 ·
GDQuest/GDScript-formatter の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
install: root SSH tmpfiles.d drop-in is labeled etc_runtime_t instead of etc_t対応中かも @andrewdunndev が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
[Misdetection] `text/tab-separated-values` file misdetected as `text/tsv`対応中かも @bact が今日担当しました。 オープンmisdetection needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
-
C-bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 2 日以内に返信