Do not show classes in file node by default in project view
This commit is contained in:
@@ -44,7 +44,7 @@ public class JetIconProvider extends IconProvider {
|
||||
if (psiElement instanceof JetFile) {
|
||||
JetFile file = (JetFile) psiElement;
|
||||
JetClassOrObject mainClass = getMainClass(file);
|
||||
return mainClass != null ? getIcon(mainClass, flags) : JetIcons.FILE;
|
||||
return mainClass != null && file.getDeclarations().size() == 1 ? getIcon(mainClass, flags) : JetIcons.FILE;
|
||||
}
|
||||
if (psiElement instanceof JetNamespaceHeader) {
|
||||
return (flags & Iconable.ICON_FLAG_OPEN) != 0 ? PlatformIcons.PACKAGE_OPEN_ICON : PlatformIcons.PACKAGE_ICON;
|
||||
|
||||
@@ -45,14 +45,16 @@ public class JetFileTreeNode extends PsiFileNode {
|
||||
if (file == null) return Collections.emptyList();
|
||||
ArrayList<AbstractTreeNode> result = new ArrayList<AbstractTreeNode>();
|
||||
|
||||
List<JetDeclaration> declarations = file.getDeclarations();
|
||||
if (getSettings().isShowMembers()) {
|
||||
List<JetDeclaration> declarations = file.getDeclarations();
|
||||
|
||||
for (JetDeclaration declaration : declarations) {
|
||||
if (declaration instanceof JetClassOrObject) {
|
||||
result.add(new JetClassOrObjectTreeNode(file.getProject(), (JetClassOrObject) declaration, getSettings()));
|
||||
}
|
||||
else if (getSettings().isShowMembers()) {
|
||||
result.add(new JetDeclarationTreeNode(getProject(), declaration, getSettings()));
|
||||
for (JetDeclaration declaration : declarations) {
|
||||
if (declaration instanceof JetClassOrObject) {
|
||||
result.add(new JetClassOrObjectTreeNode(file.getProject(), (JetClassOrObject) declaration, getSettings()));
|
||||
}
|
||||
else if (getSettings().isShowMembers()) {
|
||||
result.add(new JetDeclarationTreeNode(getProject(), declaration, getSettings()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ public class JetProjectViewProvider implements SelectableTreeStructureProvider,
|
||||
List<JetDeclaration> declarations = file.getDeclarations();
|
||||
|
||||
JetClassOrObject mainClass = JetIconProvider.getMainClass(file);
|
||||
if (mainClass != null && (!settings.isShowMembers() || declarations.size() == 1)) {
|
||||
if (mainClass != null && declarations.size() == 1) {
|
||||
result.add(new JetClassOrObjectTreeNode(file.getProject(), mainClass, settings));
|
||||
}
|
||||
else {
|
||||
@@ -106,7 +106,7 @@ public class JetProjectViewProvider implements SelectableTreeStructureProvider,
|
||||
return current != null ? current : file;
|
||||
}
|
||||
|
||||
private boolean isSelectable(PsiElement element) {
|
||||
private static boolean isSelectable(PsiElement element) {
|
||||
if (element instanceof JetFile) return true;
|
||||
if (element instanceof JetDeclaration) {
|
||||
PsiElement parent = element.getParent();
|
||||
|
||||
Reference in New Issue
Block a user