mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[ByteCodeViewer] minor cleanup in ByteCodeViewerManager
GitOrigin-RevId: 646fb15fc7e292b366d7f439d008df6b4540eb89
This commit is contained in:
committed by
intellij-monorepo-bot
parent
4cd47d7fed
commit
ec93e9e898
@@ -29,23 +29,23 @@ public object ByteCodeViewerManager {
|
||||
.first()
|
||||
}
|
||||
|
||||
public fun findClassFile(aClass: PsiClass): VirtualFile? {
|
||||
val fileClass = aClass.containingClassFileClass()
|
||||
public fun findClassFile(psiClass: PsiClass): VirtualFile? {
|
||||
val fileClass = psiClass.containingClassFileClass()
|
||||
for (finder in CLASS_FINDER_EP.extensionList) {
|
||||
val vFile = finder.findClass(aClass, fileClass)
|
||||
val vFile = finder.findClass(psiClass, fileClass)
|
||||
if (vFile != null) {
|
||||
return vFile
|
||||
}
|
||||
}
|
||||
val file = fileClass.originalElement.containingFile.virtualFile ?: return null
|
||||
val jvmClassName = ClassUtil.getBinaryClassName(aClass) ?: return null
|
||||
return if (FileTypeRegistry.getInstance().isFileOfType(file, JavaClassFileType.INSTANCE)) {
|
||||
val jvmClassName = ClassUtil.getBinaryClassName(psiClass) ?: return null
|
||||
if (FileTypeRegistry.getInstance().isFileOfType(file, JavaClassFileType.INSTANCE)) {
|
||||
// compiled class; looking for the right .class file (inner class 'A.B' is "contained" in 'A.class', but we need 'A$B.class')
|
||||
file.parent.findChild(StringUtil.getShortName(jvmClassName) + ".class")
|
||||
return file.parent.findChild(StringUtil.getShortName(jvmClassName) + ".class")
|
||||
}
|
||||
else {
|
||||
// source code; looking for a .class file in compiler output
|
||||
val fileIndex = ProjectFileIndex.getInstance(aClass.project)
|
||||
val fileIndex = ProjectFileIndex.getInstance(psiClass.project)
|
||||
val module = fileIndex.getModuleForFile(file) ?: return null
|
||||
val compilerModuleExtension = CompilerModuleExtension.getInstance(module) ?: return null
|
||||
val classRoot = when (fileIndex.isInTestSourceContent(file)) {
|
||||
@@ -85,8 +85,8 @@ public object ByteCodeViewerManager {
|
||||
val queue: Queue<PsiClass> = ArrayDeque<PsiClass>(listOf<PsiClass?>(*containingFile.getClasses()))
|
||||
while (!queue.isEmpty()) {
|
||||
val c = queue.remove()
|
||||
val navigationElement: PsiElement? = c.getNavigationElement()
|
||||
val classRange = navigationElement?.getTextRange()
|
||||
val navigationElement: PsiElement = c.getNavigationElement()
|
||||
val classRange = navigationElement.getTextRange()
|
||||
if (classRange != null && classRange.contains(textRange)) {
|
||||
result = c
|
||||
queue.clear()
|
||||
|
||||
Reference in New Issue
Block a user