Skip to content

Conversation

@jtkiesel
Copy link
Contributor

What changed with this PR:

Class/enum/interface/record declarations now have their extends/implements/permits clauses wrapped/indented more similarly to the way Prettier TypeScript does.

Example

Input

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc> extends Dddddddddd implements Eeeeeeeeee {

  void a() {}
}

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc> extends Dddddddddd implements Eeeeeeeeee {}

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc> extends Dddddddddd<Eeeeeeeeee, Ffffffffff> {

  void a() {}
}

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc> extends Dddddddddd<Eeeeeeeeee, Ffffffffff, Gggggggggg, Hhhhhhhhhh, Iiiiiiiiii> {

  void a() {}
}

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc> extends Dddddddddd<Eeeeeeeeee, Ffffffffff> implements Gggggggggg, Hhhhhhhhhh {

  void a() {}
}

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc> extends Dddddddddd<Eeeeeeeeee, Ffffffffff> implements Gggggggggg, Hhhhhhhhhh {}

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc, Dddddddddd, Eeeeeeeeee, Ffffffffff, Gggggggggg> extends Hhhhhhhhhh<Iiiiiiiiii, Jjjjjjjjjj> implements Kkkkkkkkkk, Llllllllll {

  void a() {}
}

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc, Dddddddddd, Eeeeeeeeee, Ffffffffff, Gggggggggg> extends Hhhhhhhhhh<Iiiiiiiiii, Jjjjjjjjjj> implements Kkkkkkkkkk, Llllllllll {}

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc, Dddddddddd, Eeeeeeeeee, Ffffffffff, Gggggggggg> extends Hhhhhhhhhh<Iiiiiiiiii, Jjjjjjjjjj, Kkkkkkkkkk, Llllllllll, Mmmmmmmmmm, Nnnnnnnnnn> implements Oooooooooo, Pppppppppp, Qqqqqqqqqq, Rrrrrrrrrr, Ssssssssss, Tttttttttt, Uuuuuuuuuu {

  void a() {}
}

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc, Dddddddddd, Eeeeeeeeee, Ffffffffff, Gggggggggg> extends Hhhhhhhhhh<Iiiiiiiiii, Jjjjjjjjjj, Kkkkkkkkkk, Llllllllll, Mmmmmmmmmm, Nnnnnnnnnn> implements Oooooooooo, Pppppppppp, Qqqqqqqqqq, Rrrrrrrrrr, Ssssssssss, Tttttttttt, Uuuuuuuuuu {}

record Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc>(Dddddddddd dddddddddd) implements Eeeeeeeeee {

  void a() {}
}

record Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc>(Dddddddddd dddddddddd) implements Eeeeeeeeee {}

record Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc, Dddddddddd, Eeeeeeeeee, Ffffffffff, Gggggggggg>(Hhhhhhhhhh Hhhhhhhhhh) implements Iiiiiiiiii {

  void a() {}
}

record Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc, Dddddddddd, Eeeeeeeeee, Ffffffffff, Gggggggggg>(Hhhhhhhhhh Hhhhhhhhhh) implements Iiiiiiiiii {}

record Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc, Dddddddddd, Eeeeeeeeee, Ffffffffff, Gggggggggg>(Hhhhhhhhhh Hhhhhhhhhh) implements Iiiiiiiiii, Jjjjjjjjjj, Kkkkkkkkkk, Llllllllll, Mmmmmmmmmm, Nnnnnnnnnn {

  void a() {}
}

Output

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc>
  extends Dddddddddd
  implements Eeeeeeeeee
{

  void a() {}
}

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc>
  extends Dddddddddd
  implements Eeeeeeeeee {}

class Aaaaaaaaaa<
  Bbbbbbbbbb,
  Cccccccccc
> extends Dddddddddd<Eeeeeeeeee, Ffffffffff> {

  void a() {}
}

class Aaaaaaaaaa<
  Bbbbbbbbbb,
  Cccccccccc
> extends Dddddddddd<
  Eeeeeeeeee,
  Ffffffffff,
  Gggggggggg,
  Hhhhhhhhhh,
  Iiiiiiiiii
> {

  void a() {}
}

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc>
  extends Dddddddddd<Eeeeeeeeee, Ffffffffff>
  implements Gggggggggg, Hhhhhhhhhh
{

  void a() {}
}

class Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc>
  extends Dddddddddd<Eeeeeeeeee, Ffffffffff>
  implements Gggggggggg, Hhhhhhhhhh {}

class Aaaaaaaaaa<
    Bbbbbbbbbb,
    Cccccccccc,
    Dddddddddd,
    Eeeeeeeeee,
    Ffffffffff,
    Gggggggggg
  >
  extends Hhhhhhhhhh<Iiiiiiiiii, Jjjjjjjjjj>
  implements Kkkkkkkkkk, Llllllllll
{

  void a() {}
}

class Aaaaaaaaaa<
    Bbbbbbbbbb,
    Cccccccccc,
    Dddddddddd,
    Eeeeeeeeee,
    Ffffffffff,
    Gggggggggg
  >
  extends Hhhhhhhhhh<Iiiiiiiiii, Jjjjjjjjjj>
  implements Kkkkkkkkkk, Llllllllll {}

class Aaaaaaaaaa<
    Bbbbbbbbbb,
    Cccccccccc,
    Dddddddddd,
    Eeeeeeeeee,
    Ffffffffff,
    Gggggggggg
  >
  extends Hhhhhhhhhh<
    Iiiiiiiiii,
    Jjjjjjjjjj,
    Kkkkkkkkkk,
    Llllllllll,
    Mmmmmmmmmm,
    Nnnnnnnnnn
  >
  implements
    Oooooooooo,
    Pppppppppp,
    Qqqqqqqqqq,
    Rrrrrrrrrr,
    Ssssssssss,
    Tttttttttt,
    Uuuuuuuuuu
{

  void a() {}
}

class Aaaaaaaaaa<
    Bbbbbbbbbb,
    Cccccccccc,
    Dddddddddd,
    Eeeeeeeeee,
    Ffffffffff,
    Gggggggggg
  >
  extends Hhhhhhhhhh<
    Iiiiiiiiii,
    Jjjjjjjjjj,
    Kkkkkkkkkk,
    Llllllllll,
    Mmmmmmmmmm,
    Nnnnnnnnnn
  >
  implements
    Oooooooooo,
    Pppppppppp,
    Qqqqqqqqqq,
    Rrrrrrrrrr,
    Ssssssssss,
    Tttttttttt,
    Uuuuuuuuuu {}

record Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc>(
  Dddddddddd dddddddddd
) implements Eeeeeeeeee {
  void a() {}
}

record Aaaaaaaaaa<Bbbbbbbbbb, Cccccccccc>(
  Dddddddddd dddddddddd
) implements Eeeeeeeeee {}

record Aaaaaaaaaa<
  Bbbbbbbbbb,
  Cccccccccc,
  Dddddddddd,
  Eeeeeeeeee,
  Ffffffffff,
  Gggggggggg
>(
  Hhhhhhhhhh Hhhhhhhhhh
) implements Iiiiiiiiii {
  void a() {}
}

record Aaaaaaaaaa<
  Bbbbbbbbbb,
  Cccccccccc,
  Dddddddddd,
  Eeeeeeeeee,
  Ffffffffff,
  Gggggggggg
>(
  Hhhhhhhhhh Hhhhhhhhhh
) implements Iiiiiiiiii {}

record Aaaaaaaaaa<
  Bbbbbbbbbb,
  Cccccccccc,
  Dddddddddd,
  Eeeeeeeeee,
  Ffffffffff,
  Gggggggggg
>(
  Hhhhhhhhhh Hhhhhhhhhh
) implements
  Iiiiiiiiii,
  Jjjjjjjjjj,
  Kkkkkkkkkk,
  Llllllllll,
  Mmmmmmmmmm,
  Nnnnnnnnnn
{
  void a() {}
}

Relative issues or prs:

Closes #781

@jtkiesel jtkiesel merged commit daefe4c into jhipster:main Oct 23, 2025
6 checks passed
@jtkiesel jtkiesel deleted the feat/improve-class-like-clause-wrapping branch October 23, 2025 03:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve formatting for implements clause

1 participant