Skip to content

Commit 10610f8

Browse files
committed
fixup! Introduce semantics-aware Java import ordering. (fixes #522)
1 parent 7deb02e commit 10610f8

File tree

4 files changed

+12
-12
lines changed

4 files changed

+12
-12
lines changed

lib/src/main/java/com/diffplug/spotless/java/ImportOrderStep.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.util.Map;
3030
import java.util.Objects;
3131
import java.util.Set;
32+
import java.util.TreeSet;
3233
import java.util.function.Supplier;
3334
import java.util.stream.Collectors;
3435
import java.util.stream.Stream;
@@ -40,7 +41,7 @@
4041

4142
public final class ImportOrderStep {
4243
private static final boolean WILDCARDS_LAST_DEFAULT = false;
43-
private static final boolean SEMANTIC_SORT_DEFAULT = true;
44+
private static final boolean SEMANTIC_SORT_DEFAULT = false;
4445
private static final Set<String> TREAT_AS_PACKAGE_DEFAULT = null;
4546
private static final Set<String> TREAT_AS_CLASS_DEFAULT = null;
4647

@@ -84,9 +85,8 @@ public FormatterStep createFrom(boolean wildcardsLast, boolean semanticSort, Set
8485
private FormatterStep createFrom(boolean wildcardsLast, boolean semanticSort, Set<String> treatAsPackage,
8586
Set<String> treatAsClass, Supplier<List<String>> importOrder) {
8687
return FormatterStep.createLazy("importOrder",
87-
() -> new State(importOrder.get(), lineFormat, wildcardsLast, semanticSort,
88-
treatAsPackage == null ? Set.of() : treatAsPackage,
89-
treatAsClass == null ? Set.of() : treatAsClass),
88+
() -> new State(importOrder.get(), lineFormat, wildcardsLast, semanticSort, treatAsPackage,
89+
treatAsClass),
9090
State::toFormatter);
9191
}
9292

@@ -118,17 +118,17 @@ private static final class State implements Serializable {
118118
private final String lineFormat;
119119
private final boolean wildcardsLast;
120120
private final boolean semanticSort;
121-
private final Set<String> treatAsPackage;
122-
private final Set<String> treatAsClass;
121+
private final TreeSet<String> treatAsPackage;
122+
private final TreeSet<String> treatAsClass;
123123

124124
State(List<String> importOrder, String lineFormat, boolean wildcardsLast, boolean semanticSort,
125125
Set<String> treatAsPackage, Set<String> treatAsClass) {
126126
this.importOrder = importOrder;
127127
this.lineFormat = lineFormat;
128128
this.wildcardsLast = wildcardsLast;
129129
this.semanticSort = semanticSort;
130-
this.treatAsPackage = treatAsPackage;
131-
this.treatAsClass = treatAsClass;
130+
this.treatAsPackage = treatAsPackage == null ? null : new TreeSet<>(treatAsPackage);
131+
this.treatAsClass = treatAsClass == null ? null : new TreeSet<>(treatAsClass);
132132
}
133133

134134
FormatterFunc toFormatter() {

lib/src/main/java/com/diffplug/spotless/java/ImportSorterImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ private String[] splitPackageAndClasses(String fqcn) {
415415
*/
416416
private boolean treatAsPackage(String prefix) {
417417
// This would be the place to introduce wild cards or even regex matching.
418-
return treatAsPackage.contains(prefix);
418+
return treatAsPackage != null && treatAsPackage.contains(prefix);
419419
}
420420

421421
/**
@@ -424,7 +424,7 @@ private boolean treatAsPackage(String prefix) {
424424
*/
425425
private boolean treatAsClass(String prefix) {
426426
// This would be the place to introduce wild cards or even regex matching.
427-
return treatAsClass.contains(prefix);
427+
return treatAsClass != null && treatAsClass.contains(prefix);
428428
}
429429

430430
}

plugin-gradle/src/main/java/com/diffplug/gradle/spotless/JavaExtension.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public class ImportOrderConfig {
7777
final File importOrderFile;
7878

7979
boolean wildcardsLast = false;
80-
boolean semanticSort = true;
80+
boolean semanticSort = false;
8181
Set<String> treatAsPackage = Set.of();
8282
Set<String> treatAsClass = Set.of();
8383

plugin-maven/src/main/java/com/diffplug/spotless/maven/java/ImportOrder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public class ImportOrder implements FormatterStepFactory {
4444
* lexicographically.
4545
*/
4646
@Parameter
47-
private boolean semanticSort = true;
47+
private boolean semanticSort = false;
4848

4949
/**
5050
* The prefixes that should be treated as packages for

0 commit comments

Comments
 (0)