mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
any hierarchy children calculation becomes interruptible
This commit is contained in:
@@ -17,7 +17,6 @@ package com.intellij.ide.hierarchy.call;
|
||||
|
||||
import com.intellij.ide.hierarchy.HierarchyNodeDescriptor;
|
||||
import com.intellij.ide.hierarchy.HierarchyTreeStructure;
|
||||
import com.intellij.ide.projectView.impl.nodes.ProjectViewDirectoryHelper;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.searches.OverridingMethodsSearch;
|
||||
@@ -40,10 +39,6 @@ public final class CalleeMethodsTreeStructure extends HierarchyTreeStructure {
|
||||
|
||||
@NotNull
|
||||
protected final Object[] buildChildren(@NotNull final HierarchyNodeDescriptor descriptor) {
|
||||
return ProjectViewDirectoryHelper.calculateYieldingToWriteAction(() -> calcChildren(descriptor));
|
||||
}
|
||||
|
||||
private Object[] calcChildren(@NotNull HierarchyNodeDescriptor descriptor) {
|
||||
final PsiMember enclosingElement = ((CallHierarchyNodeDescriptor)descriptor).getEnclosingElement();
|
||||
if (!(enclosingElement instanceof PsiMethod)) {
|
||||
return ArrayUtil.EMPTY_OBJECT_ARRAY;
|
||||
|
||||
@@ -17,7 +17,6 @@ package com.intellij.ide.hierarchy.call;
|
||||
|
||||
import com.intellij.ide.hierarchy.HierarchyNodeDescriptor;
|
||||
import com.intellij.ide.hierarchy.HierarchyTreeStructure;
|
||||
import com.intellij.ide.projectView.impl.nodes.ProjectViewDirectoryHelper;
|
||||
import com.intellij.ide.util.treeView.NodeDescriptor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
@@ -46,10 +45,6 @@ public final class CallerMethodsTreeStructure extends HierarchyTreeStructure {
|
||||
@NotNull
|
||||
@Override
|
||||
protected final Object[] buildChildren(@NotNull final HierarchyNodeDescriptor descriptor) {
|
||||
return ProjectViewDirectoryHelper.calculateYieldingToWriteAction(() -> calcChildren(descriptor));
|
||||
}
|
||||
|
||||
private Object[] calcChildren(@NotNull HierarchyNodeDescriptor descriptor) {
|
||||
PsiMember enclosingElement = ((CallHierarchyNodeDescriptor)descriptor).getEnclosingElement();
|
||||
HierarchyNodeDescriptor nodeDescriptor = getBaseDescriptor();
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.intellij.ide.hierarchy;
|
||||
|
||||
import com.intellij.ide.projectView.impl.nodes.ProjectViewDirectoryHelper;
|
||||
import com.intellij.ide.util.treeView.AbstractTreeStructure;
|
||||
import com.intellij.ide.util.treeView.NodeDescriptor;
|
||||
import com.intellij.openapi.project.IndexNotReadyException;
|
||||
@@ -95,7 +96,7 @@ public abstract class HierarchyTreeStructure extends AbstractTreeStructure {
|
||||
if (cachedChildren == null) {
|
||||
if (descriptor.isValid()) {
|
||||
try {
|
||||
descriptor.setCachedChildren(buildChildren(descriptor));
|
||||
descriptor.setCachedChildren(ProjectViewDirectoryHelper.calculateYieldingToWriteAction(() ->buildChildren(descriptor)));
|
||||
}
|
||||
catch (IndexNotReadyException e) {
|
||||
return ArrayUtil.EMPTY_OBJECT_ARRAY;
|
||||
|
||||
Reference in New Issue
Block a user