jhipster / jhipster/prettier-java

Linebreaks in generics

Offen
#526 13 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
1.2k
Forks
120
Ø Merge
1 T. 11 Std.
Gemergte PRs (30 T.)
31

Beschreibung

In testing an upgrade to 1.6.1, we're sometimes seeing line breaks introduced into generics. Seems like this is probably a result of #512. I can see this being useful in pathological cases with extremely long generic type lists, but the issue is that we run prettier with a pretty aggressive line length limit, so we end up seeing split generics even in relatively straight-forward code samples. And it's pretty jarring when you first see it, because as far as I know, splitting generics like this isn't an idiomatic way to format Java (at least I haven't seen it in the wild before).

I tested the prettier-java upgrade on ~1,500 of our internal GitHub repos, and it definitely seemed like, in most cases, this generic splitting was hurting the code readability more than it helped. But curious to get your thoughts on how attached you are to this feature.

**Prettier-Java 1.6.1**

```sh
# Options (if any):
```

**Input:**

```java
public abstract class GenericWblGeneratorWithLongName {

public static PagedResult appendCustomOffsets(
Arg arg1,
Arg arg2
) {
// implementation
}
}
```

**Output:**

```java
public abstract class GenericWblGeneratorWithLongName<
OBJECT_TYPE, RECORD_TYPE
> {

public static <
RECORD, OFFSET
> PagedResult appendCustomOffsets(Arg arg1, Arg arg2) {
// implementation
}
}
```

**Expected behavior:**

```java
public abstract class GenericWblGeneratorWithLongName {

public static PagedResult appendCustomOffsets(
Arg arg1,
Arg arg2
) {
// implementation
}
}
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die bereitgestellte Java-Eingabe mit dem formatter zu reproduzieren und seine Ausgabe mit dem erwarteten Verhalten zu vergleichen. Verfolge den Formatierungspfad für generische Typparameter von Klassen und Methoden und füge anschließend einen Regressionstest für die Beispiele hinzu; abgeschlossen ist die Aufgabe, wenn generische Listen in einer Zeile bleiben, während das bestehende Umbrechen von Argumenten unverändert bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

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