Skip to content

Commit

Permalink
fix: Cannot show the content of a referenced jar (#376)
Browse files Browse the repository at this point in the history
Signed-off-by: Sheng Chen <[email protected]>
  • Loading branch information
jdneo authored Nov 17, 2020
1 parent 7021f1c commit ab59282
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ private static List<PackageNode> getPackageFragmentRoots(PackageParams query, IP

private static List<PackageNode> getPackages(PackageParams query, IProgressMonitor pm) {
try {
IPackageFragmentRoot packageRoot = (IPackageFragmentRoot) JavaCore.create(query.getHandlerIdentifier());
IPackageFragmentRoot packageRoot = getPackageFragmentRootFromQuery(query);
if (packageRoot == null) {
throw new CoreException(
new Status(IStatus.ERROR, JdtlsExtActivator.PLUGIN_ID, String.format("No package root found for %s", query.getPath())));
Expand All @@ -354,6 +354,25 @@ private static List<PackageNode> getPackages(PackageParams query, IProgressMonit
return Collections.emptyList();
}

private static IPackageFragmentRoot getPackageFragmentRootFromQuery(PackageParams query) {
IPackageFragmentRoot packageRoot = (IPackageFragmentRoot) JavaCore.create(query.getHandlerIdentifier());
if (packageRoot != null) {
return packageRoot;
}

// jar in Referenced Libraries must be constructed from path
IJavaProject javaProject = getJavaProject(query.getProjectUri());
if (javaProject != null) {
try {
packageRoot = javaProject.findPackageFragmentRoot(Path.fromPortableString(query.getRootPath()));
} catch (JavaModelException e) {
return null;
}
}

return packageRoot;
}

private static List<PackageNode> getRootTypes(PackageParams query, IProgressMonitor pm) {
try {
IPackageFragment packageFragment = (IPackageFragment) JavaCore.create(query.getHandlerIdentifier());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ public class PackageParams {

private String handlerIdentifier;

private String rootPath;

public PackageParams() {
}

Expand Down Expand Up @@ -77,4 +79,12 @@ public void setHandlerIdentifier(String handlerIdentifier) {
this.handlerIdentifier = handlerIdentifier;
}

public String getRootPath() {
return rootPath;
}

public void setRootPath(String rootPath) {
this.rootPath = rootPath;
}

}
1 change: 1 addition & 0 deletions src/views/packageRootNode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export class PackageRootNode extends DataNode {
return Jdtls.getPackageData({
kind: NodeKind.PackageRoot,
projectUri: this._project.nodeData.uri,
rootPath: this.nodeData.path,
handlerIdentifier: this.nodeData.handlerIdentifier,
});
}
Expand Down

0 comments on commit ab59282

Please sign in to comment.