Skip to content

Commit 8d19069

Browse files
New option: file comparator
1 parent 2430785 commit 8d19069

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

src/main/java/io/github/computerdaddyguy/jfiletreeprettyprinter/PrettyPrintOptions.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.github.computerdaddyguy.jfiletreeprettyprinter.renderer.RenderingOptions;
44
import io.github.computerdaddyguy.jfiletreeprettyprinter.scanner.ScanningOptions;
55
import java.nio.file.Path;
6+
import java.util.Comparator;
67
import java.util.Objects;
78
import java.util.function.ToIntFunction;
89
import org.jspecify.annotations.NullMarked;
@@ -129,4 +130,11 @@ public PrettyPrintOptions withMaxDepth(int maxDepth) {
129130
return this;
130131
}
131132

133+
// ----------------------------------------------
134+
135+
@Override
136+
public Comparator<Path> fileComparator() {
137+
return Comparator.comparing(Path::toString);
138+
}
139+
132140
}

src/main/java/io/github/computerdaddyguy/jfiletreeprettyprinter/scanner/DefaultPathToTreeScanner.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import java.util.ArrayList;
1414
import java.util.List;
1515
import java.util.Objects;
16+
import java.util.stream.StreamSupport;
1617
import org.jspecify.annotations.NullMarked;
1718

1819
@NullMarked
@@ -46,7 +47,9 @@ private TreeEntry handleDirectory(int depth, Path dir) {
4647
int maxChildrenEntries = options.getChildrenLimitFunction().applyAsInt(dir);
4748

4849
try (var childrenStream = Files.newDirectoryStream(dir)) {
49-
var it = childrenStream.iterator();
50+
var it = StreamSupport.stream(childrenStream.spliterator(), false)
51+
.sorted(options.fileComparator())
52+
.iterator();
5053
var childCount = 0;
5154
while (it.hasNext()) {
5255
childCount++;

src/main/java/io/github/computerdaddyguy/jfiletreeprettyprinter/scanner/ScanningOptions.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.github.computerdaddyguy.jfiletreeprettyprinter.scanner;
22

33
import java.nio.file.Path;
4+
import java.util.Comparator;
45
import java.util.function.ToIntFunction;
56
import org.jspecify.annotations.NullMarked;
67

@@ -11,4 +12,6 @@ public interface ScanningOptions {
1112

1213
ToIntFunction<Path> getChildrenLimitFunction();
1314

15+
Comparator<Path> fileComparator();
16+
1417
}

0 commit comments

Comments
 (0)