mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 03:21:12 +07:00
try to find containing class by range in navigation (IDEA-175907)
This commit is contained in:
@@ -22,6 +22,7 @@ import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.presentation.java.SymbolPresentationUtil;
|
||||
@@ -212,6 +213,15 @@ public class ByteCodeViewerManager extends DockablePopupManager<ByteCodeViewerCo
|
||||
if (containingFile instanceof PsiClassOwner) {
|
||||
PsiClass[] classes = ((PsiClassOwner)containingFile).getClasses();
|
||||
if (classes.length == 1) return classes[0];
|
||||
|
||||
TextRange textRange = psiElement.getTextRange();
|
||||
if (textRange != null) {
|
||||
for (PsiClass aClass : classes) {
|
||||
PsiElement navigationElement = aClass.getNavigationElement();
|
||||
TextRange classRange = navigationElement != null ? navigationElement.getTextRange() : null;
|
||||
if (classRange != null && classRange.contains(textRange)) return aClass;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user