diffplug / diffplug/spotless

Formatting issue for annotated type parameter

オープン
#3,040 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
5.7k
フォーク
561
平均マージ
1日 14時間
マージ済み PR(30日)
43

説明

Given

```kotlin
internal object IntSerializer : KSerializer {
override val descriptor: SerialDescriptor
get() = PrimitiveSerialDescriptor(IntSerializer::class.qualifiedName!!, PrimitiveKind.STRING)

override fun serialize(encoder: Encoder, value: Int) {
encoder.encodeString(value.toHexString())
}

override fun deserialize(decoder: Decoder): Int = 0
}

```
The following expression

```kotlin
internal data class Foo(val bar: List>)
```

after running `./gradlew spotlessApply`, it is reformatted to

```kotlin
internal data class Foo(
val bar: List<
Pair<
@Serializable(IntSerializer::class)
Int,
String,
>,
>,
)
```

even though line max len is not exceeded, no matter how I split this.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

./gradlew spotlessApply を実行して、ネストされた Kotlin 型パラメーターの例で問題を再現します。ネストされた Pair 型と List 型の内部にある @Serializable アノテーションを処理する Kotlin のフォーマット処理経路を追跡します。フォーマッターが行の長さの制限を守り、レポートに示された不要な展開を導入しなければ完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
kotlin
領域
tooling
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
66/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。