Skip to content

Commit d5d02ca

Browse files
authored
fix: Show folders in the package nodes (#643)
Signed-off-by: sheche <[email protected]>
1 parent 365a087 commit d5d02ca

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

jdtls.ext/com.microsoft.jdtls.ext.core/src/com/microsoft/jdtls/ext/core/PackageCommand.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.HashMap;
1919
import java.util.List;
2020
import java.util.Map;
21+
import java.util.Objects;
2122
import java.util.function.BiFunction;
2223
import java.util.stream.Collectors;
2324

@@ -403,20 +404,25 @@ private static List<PackageNode> getRootTypes(PackageParams query, IProgressMoni
403404
}
404405
// when .java files and other .properties files are mixed up
405406
rootTypeNodes.addAll(
406-
Arrays.stream(nonJavaResources).filter(resource -> resource instanceof IFile || resource instanceof JarEntryFile).map(resource -> {
407+
Arrays.stream(nonJavaResources).map(resource -> {
407408
if (resource instanceof IFile) {
408409
IFile file = (IFile) resource;
409410
PackageNode item = new PackageNode(file.getName(), file.getFullPath().toPortableString(), NodeKind.FILE);
410411
item.setUri(JDTUtils.getFileURI(file));
411412
return item;
412-
} else {
413+
} else if (resource instanceof IFolder) {
414+
IFolder folder = (IFolder) resource;
415+
PackageNode item = new PackageNode(folder.getName(), folder.getFullPath().toPortableString(), NodeKind.FOLDER);
416+
item.setUri(JDTUtils.getFileURI(folder));
417+
return item;
418+
} else if (resource instanceof JarEntryFile) {
413419
JarEntryFile file = (JarEntryFile) resource;
414420
PackageNode entry = new PackageNode(file.getName(), file.getFullPath().toPortableString(), NodeKind.FILE);
415421
entry.setUri(ExtUtils.toUri((JarEntryFile) resource));
416422
return entry;
417423
}
418-
419-
}).collect(Collectors.toList()));
424+
return null;
425+
}).filter(Objects::nonNull).collect(Collectors.toList()));
420426
return rootTypeNodes;
421427
}
422428
} catch (CoreException e) {

src/views/hierarchicalPackageNode.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { explorerLock } from "../utils/Lock";
99
import { DataNode } from "./dataNode";
1010
import { ExplorerNode } from "./explorerNode";
1111
import { FileNode } from "./fileNode";
12+
import { FolderNode } from "./folderNode";
1213
import { PackageNode } from "./packageNode";
1314
import { PrimaryTypeNode } from "./PrimaryTypeNode";
1415
import { ProjectNode } from "./projectNode";
@@ -75,6 +76,8 @@ export class HierarchicalPackageNode extends PackageNode {
7576
if (nodeData.metaData && nodeData.metaData[PrimaryTypeNode.K_TYPE_KIND]) {
7677
result.push(new PrimaryTypeNode(nodeData, this, this._rootNode));
7778
}
79+
} else if (nodeData.kind === NodeKind.Folder) {
80+
result.push(new FolderNode(nodeData, this, this._project, this._rootNode));
7881
}
7982
});
8083
}

src/views/packageNode.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@ import { isTest } from "../utility";
1010
import { DataNode } from "./dataNode";
1111
import { ExplorerNode } from "./explorerNode";
1212
import { FileNode } from "./fileNode";
13+
import { FolderNode } from "./folderNode";
1314
import { PrimaryTypeNode } from "./PrimaryTypeNode";
15+
import { ProjectNode } from "./projectNode";
1416

1517
export class PackageNode extends DataNode {
16-
constructor(nodeData: INodeData, parent: DataNode, protected _project: DataNode, protected _rootNode: DataNode) {
18+
constructor(nodeData: INodeData, parent: DataNode, protected _project: ProjectNode, protected _rootNode: DataNode) {
1719
super(nodeData, parent);
1820
}
1921

@@ -37,6 +39,8 @@ export class PackageNode extends DataNode {
3739
if (nodeData.metaData && nodeData.metaData[PrimaryTypeNode.K_TYPE_KIND]) {
3840
result.push(new PrimaryTypeNode(nodeData, this, this._rootNode));
3941
}
42+
} else if (nodeData.kind === NodeKind.Folder) {
43+
result.push(new FolderNode(nodeData, this, this._project, this._rootNode));
4044
}
4145
});
4246
}

0 commit comments

Comments
 (0)