jhipster / jhipster/prettier-java
Linebreaks in generics
- 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
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