jhipster / jhipster/prettier-java

sort module-info

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

Beschreibung

**Prettier-Java 2.5.0**

**Input:**

```java
module com.xenoterracide.tools.java {
exports com.xenoterracide.tools0.java.function;
exports com.xenoterracide.tools0.java.annotation;
requires java.base;
requires jakarta.annotation;
}
```

**Output:**

```java
module com.xenoterracide.tools.java {
exports com.xenoterracide.tools0.java.function;
exports com.xenoterracide.tools0.java.annotation;
requires java.base;
requires jakarta.annotation;
}
```

**Expected behavior:**

some kind of sorting, for convienience, like sorting imports. Note: I don't think functionally the order matters, but I've linked the JLS spec in case it defines it. It does seem to show an order (that's not alphabetic only). Also I don't have an opinion other than it should sort and should conform to JLS.

I'll be honest, I haven't really read this spec, so please verify my output conforms.. but it looks like it should be as follows. Obviously my example is not comprehensive https://docs.oracle.com/javase/specs/jls/se9/html/jls-7.html#jls-7.7

```java
module com.xenoterracide.tools.java {
requires jakarta.annotation;
requires java.base;
exports com.xenoterracide.tools0.java.annotation;
exports com.xenoterracide.tools0.java.function;
}
```

note: I think it's acceptable just to make this an alpha sort with some grouping, e.g. `requires` and `requires static` and `requires transient` are different groups. `requires stuff` shouldn't be mixed next to `requires static`. This is currently one of my most complex examples.

```java
import org.jspecify.annotations.NullMarked;

/**
* JPA utilities.
*/
@NullMarked module com.xenoterracide.commons.jpa {
exports com.xenoterracide.commons.jpa;
exports com.xenoterracide.commons.jpa.annotation;
exports com.xenoterracide.commons.jpa.util;
exports com.xenoterracide.commons.jpa.transaction to spring.beans, spring.context;

opens com.xenoterracide.commons.jpa to org.hibernate.orm.core, spring.core, org.hibernate.validator;
opens com.xenoterracide.commons.jpa.transaction to spring.core;

requires org.apache.commons.lang3;
requires spring.data.commons;
requires spring.beans;
requires spring.context;
requires spring.tx;
requires org.hibernate.orm.envers;

requires static org.jspecify;
requires static com.xenoterracide.tools.java;
requires static jakarta.annotation;
requires static org.jmolecules.architecture.layered;

requires transitive jakarta.persistence;
requires transitive jakarta.validation;
requires transitive com.xenoterracide.model;
requires org.jmolecules.ddd;
}
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

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