Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

sort module-info

Aperta
#643 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
java
Ambito
tooling

Direzione di ricerca

Inizia esaminando gli esempi di module-info.java nell’issue e la sezione 7.7 di JLS collegata per determinare l’ordine richiesto di direttive e modificatori. Il lavoro è completato quando le dichiarazioni dei moduli sono ordinate in modo coerente, con gruppi separati per requires, requires static e requires transitive, mentre exports e opens sono ordinati in modo appropriato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Prettier-Java 2.5.0

Input:

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

Output:

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

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.

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;
}
Lingua principale
Java
Stelle
1.2k
Fork
122
Merge medio
2g 10h
PR unite (30g)
35

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di jhipster/prettier-java

Tutte le issue di jhipster/prettier-java

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.