Skip to content

Commit e3f8cba

Browse files
authored
feat: make format compatible with "PER Coding Style 2.0" (#2269)
* feat: make format compatible with phpcsfixer * feat: add missing tests * feat: add missing test case * feat: move readonly modifier after abstract
1 parent 69a68d8 commit e3f8cba

File tree

3 files changed

+36
-4
lines changed

3 files changed

+36
-4
lines changed

src/printer.mjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1204,10 +1204,6 @@ function printClass(path, options, print) {
12041204
const attrs = printAttrs(path, options, print, { inline: isAnonymousClass });
12051205
const declaration = isAnonymousClass ? [] : [...attrs];
12061206

1207-
if (node.isReadonly) {
1208-
declaration.push("readonly ");
1209-
}
1210-
12111207
if (node.isFinal) {
12121208
declaration.push("final ");
12131209
}
@@ -1216,6 +1212,10 @@ function printClass(path, options, print) {
12161212
declaration.push("abstract ");
12171213
}
12181214

1215+
if (node.isReadonly) {
1216+
declaration.push("readonly ");
1217+
}
1218+
12191219
// `new` print `class` keyword with arguments
12201220
declaration.push(isAnonymousClass ? "" : node.kind);
12211221

tests/class/__snapshots__/jsfmt.spec.mjs.snap

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -901,10 +901,18 @@ final class BaseClass {}
901901
902902
abstract class BaseClass {}
903903
904+
final readonly class BaseClass {}
905+
906+
readonly final class BaseClass {}
907+
904908
final class BaseClass extends MyOtherClass {}
905909
906910
abstract class BaseClass extends MyOtherClass {}
907911
912+
final readonly class BaseClass extends MyOtherClass {}
913+
914+
readonly final class BaseClass extends MyOtherClass {}
915+
908916
final class BaseClass extends MyOtherVeryVeryVeryVeVeryVeryVeryVeryVeryLongClass {}
909917
910918
abstract class BaseClass extends MyOtherVeryVeryVeryVeVeryVeryVeryVVeryLongClass {}
@@ -1398,6 +1406,14 @@ abstract class BaseClass
13981406
{
13991407
}
14001408
1409+
final readonly class BaseClass
1410+
{
1411+
}
1412+
1413+
final readonly class BaseClass
1414+
{
1415+
}
1416+
14011417
final class BaseClass extends MyOtherClass
14021418
{
14031419
}
@@ -1406,6 +1422,14 @@ abstract class BaseClass extends MyOtherClass
14061422
{
14071423
}
14081424
1425+
final readonly class BaseClass extends MyOtherClass
1426+
{
1427+
}
1428+
1429+
final readonly class BaseClass extends MyOtherClass
1430+
{
1431+
}
1432+
14091433
final class BaseClass extends MyOtherVeryVeryVeryVeVeryVeryVeryVeryVeryLongClass
14101434
{
14111435
}

tests/class/class.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,10 +266,18 @@ final class BaseClass {}
266266

267267
abstract class BaseClass {}
268268

269+
final readonly class BaseClass {}
270+
271+
readonly final class BaseClass {}
272+
269273
final class BaseClass extends MyOtherClass {}
270274

271275
abstract class BaseClass extends MyOtherClass {}
272276

277+
final readonly class BaseClass extends MyOtherClass {}
278+
279+
readonly final class BaseClass extends MyOtherClass {}
280+
273281
final class BaseClass extends MyOtherVeryVeryVeryVeVeryVeryVeryVeryVeryLongClass {}
274282

275283
abstract class BaseClass extends MyOtherVeryVeryVeryVeVeryVeryVeryVVeryLongClass {}

0 commit comments

Comments
 (0)