mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
inspection view: do not create empty package nodes when grouping by directory is enabled + some module-info.java contains problems
This commit is contained in:
+16
-2
@@ -18,14 +18,24 @@ package com.intellij.codeInspection.reference;
|
||||
|
||||
import com.intellij.openapi.module.ModuleUtilCore;
|
||||
import com.intellij.psi.PsiJavaFile;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
|
||||
public class RefJavaFileImpl extends RefFileImpl {
|
||||
private final RefModule myRefModule;
|
||||
private final boolean myModuleFile;
|
||||
|
||||
RefJavaFileImpl(PsiJavaFile elem, RefManager manager) {
|
||||
super(elem, manager);
|
||||
super(elem, manager, false);
|
||||
myRefModule = manager.getRefModule(ModuleUtilCore.findModuleForPsiElement(elem));
|
||||
((RefPackageImpl)getRefManager().getExtension(RefJavaManager.MANAGER).getPackage(elem.getPackageName())).add(this);
|
||||
myModuleFile = PsiUtil.isModuleFile(elem);
|
||||
String packageName = elem.getPackageName();
|
||||
if (!packageName.isEmpty()) {
|
||||
((RefPackageImpl)getRefManager().getExtension(RefJavaManager.MANAGER).getPackage(packageName)).add(this);
|
||||
} else if (myRefModule != null) {
|
||||
((RefModuleImpl)myRefModule).add(this);
|
||||
} else {
|
||||
((RefProjectImpl)manager.getRefProject()).add(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -37,4 +47,8 @@ public class RefJavaFileImpl extends RefFileImpl {
|
||||
public RefModule getModule() {
|
||||
return myRefModule;
|
||||
}
|
||||
|
||||
boolean isModuleFile() {
|
||||
return myModuleFile;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -346,7 +346,7 @@ public class RefJavaManagerImpl extends RefJavaManager {
|
||||
@Override
|
||||
@Nullable
|
||||
public String getGroupName(final RefEntity entity) {
|
||||
if (entity instanceof RefFile && !(entity instanceof RefJavaFileImpl)) return null;
|
||||
if (entity instanceof RefFile && (!(entity instanceof RefJavaFileImpl) || ((RefJavaFileImpl)entity).isModuleFile())) return null;
|
||||
return RefJavaUtil.getInstance().getPackageName(entity);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -304,7 +304,7 @@ public class RefJavaUtilImpl extends RefJavaUtil{
|
||||
@Override
|
||||
@Nullable
|
||||
public String getPackageName(RefEntity refEntity) {
|
||||
if (refEntity instanceof RefProject) {
|
||||
if (refEntity instanceof RefProject || refEntity instanceof RefJavaFileImpl && ((RefJavaFileImpl)refEntity).isModuleFile()) {
|
||||
return null;
|
||||
}
|
||||
RefPackage refPackage = getPackage(refEntity);
|
||||
|
||||
@@ -28,7 +28,12 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class RefFileImpl extends RefElementImpl implements RefFile {
|
||||
RefFileImpl(PsiFile elem, RefManager manager) {
|
||||
this(elem, manager, true);
|
||||
}
|
||||
|
||||
protected RefFileImpl(PsiFile elem, RefManager manager, boolean addParent) {
|
||||
super(elem, manager);
|
||||
if (!addParent) return;
|
||||
final VirtualFile vFile = elem.getVirtualFile();
|
||||
if (vFile == null) return;
|
||||
final VirtualFile parentDirectory = vFile.getParent();
|
||||
|
||||
Reference in New Issue
Block a user