Skip to content

Commit d1c3c60

Browse files
committed
build file tree
1 parent 4373958 commit d1c3c60

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

src/com/dengzii/plugin/template/model/FileTreeNode.kt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,33 @@ open class FileTreeNode() {
240240

241241
fun build() {
242242

243+
name = getRealName()
244+
var r = sPathSplitPattern.matcher(name)
245+
val dirs = mutableListOf<String>()
246+
while (r.find()) {
247+
dirs.add(r.group(1))
248+
}
249+
traversal({ fileTreeNode: FileTreeNode, _: Int ->
250+
fileTreeNode.name = fileTreeNode.getRealName()
251+
r = sPathSplitPattern.matcher(fileTreeNode.name)
252+
dirs.clear()
253+
while (r.find()) {
254+
dirs.add(r.group(1))
255+
}
256+
expandDirs(dirs)
257+
})
258+
}
259+
260+
private fun expandDirs(dirs: List<String>) {
261+
if (dirs.isEmpty()) {
262+
return
263+
}
264+
this.name = dirs.first()
265+
dirs.drop(0)
266+
var node: FileTreeNode = this
267+
dirs.forEach {
268+
node = FileTreeNode(node, it, true)
269+
}
243270
}
244271

245272
fun getAllPlaceholderInTree(): List<String> {

0 commit comments

Comments
 (0)