From cf5347d19096e4c4793d7278b147c4d7f86e358b Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Thu, 9 Feb 2017 16:54:07 +0100 Subject: [PATCH] don't perform resolve to preselect class in the view (IDEA-167197) --- .../ClassHierarchyScopeDescriptor.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/ide/util/scopeChooser/ClassHierarchyScopeDescriptor.java b/java/java-impl/src/com/intellij/ide/util/scopeChooser/ClassHierarchyScopeDescriptor.java index 7fe18e96d315..bf19262383bb 100644 --- a/java/java-impl/src/com/intellij/ide/util/scopeChooser/ClassHierarchyScopeDescriptor.java +++ b/java/java-impl/src/com/intellij/ide/util/scopeChooser/ClassHierarchyScopeDescriptor.java @@ -25,10 +25,12 @@ import com.intellij.ide.IdeBundle; import com.intellij.ide.util.TreeClassChooser; import com.intellij.ide.util.TreeClassChooserFactory; import com.intellij.openapi.actionSystem.CommonDataKeys; +import com.intellij.openapi.actionSystem.DataContext; +import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiFunctionalExpression; +import com.intellij.psi.PsiFile; import com.intellij.psi.presentation.java.ClassPresentationUtil; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.LocalSearchScope; @@ -37,7 +39,6 @@ import com.intellij.psi.search.searches.ClassInheritorsSearch; import com.intellij.psi.search.searches.FunctionalExpressionSearch; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiUtilCore; -import com.intellij.util.Processor; import org.jetbrains.annotations.Nullable; import java.util.LinkedList; @@ -51,7 +52,17 @@ public class ClassHierarchyScopeDescriptor extends ScopeDescriptor { public ClassHierarchyScopeDescriptor(final Project project) { super(null); myProject = project; - myRootClass = PsiTreeUtil.getParentOfType(CommonDataKeys.PSI_ELEMENT.getData(DataManager.getInstance().getDataContext()), PsiClass.class, false); + DataContext dataContext = DataManager.getInstance().getDataContext(); + PsiElement element; + Editor editor = CommonDataKeys.EDITOR.getData(dataContext); + if (editor != null) { + PsiFile file = CommonDataKeys.PSI_FILE.getData(dataContext); + element = file != null ? file.findElementAt(editor.getCaretModel().getOffset()) : null; + } + else { + element = CommonDataKeys.PSI_ELEMENT.getData(dataContext); + } + myRootClass = PsiTreeUtil.getParentOfType(element, PsiClass.class, false); } public String getDisplay() {