From 3930a4a65681cd86b955bb8ea65de46e710d998f Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Sun, 26 May 2019 09:00:07 +0200 Subject: [PATCH] exclude as part of sort GitOrigin-RevId: 14f3c71a15e06c7aba59080fbac1e8298278f1f7 --- .../src/com/intellij/util/io/FileTreePrinter.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/platform/testFramework/src/com/intellij/util/io/FileTreePrinter.kt b/platform/testFramework/src/com/intellij/util/io/FileTreePrinter.kt index aef408cfcb75..800b4503a1a8 100644 --- a/platform/testFramework/src/com/intellij/util/io/FileTreePrinter.kt +++ b/platform/testFramework/src/com/intellij/util/io/FileTreePrinter.kt @@ -4,7 +4,6 @@ package com.intellij.util.io import com.intellij.util.containers.nullize import java.nio.charset.MalformedInputException import java.nio.file.Path -import java.util.* @JvmOverloads fun Path.getDirectoryTree(excluded: Set = emptySet(), printContent: Boolean = true): String { @@ -14,7 +13,7 @@ fun Path.getDirectoryTree(excluded: Set = emptySet(), printContent: Bool } private fun getDirectoryTree(dir: Path, indent: Int, sb: StringBuilder, excluded: Set, printContent: Boolean) { - val fileList = sortedFileList(dir)?.filter { !excluded.contains(it.fileName.toString()) }.nullize() ?: return + val fileList = sortedFileList(dir, excluded).nullize() ?: return getIndentString(indent, sb) if (printContent) { @@ -33,10 +32,13 @@ private fun getDirectoryTree(dir: Path, indent: Int, sb: StringBuilder, excluded } } -private fun sortedFileList(dir: Path): List? { +private fun sortedFileList(dir: Path, excluded: Set?): List? { return dir.directoryStreamIfExists { stream -> - val list = ArrayList() - stream.asSequence().mapTo(list) { it }.sorted() + var sequence = stream.asSequence() + if (!excluded.isNullOrEmpty()) { + sequence = sequence.filter { excluded.contains(it.fileName.toString()) } + } + val list = sequence.toMutableList() list.sort() list }