From 60ca1cbcf3a4fe9c4003cfdfb446dcc1d198862e Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 18 Jan 2016 19:07:51 +0100 Subject: [PATCH] don't represent Kotlin project view nodes as light classes (KT-10703) --- .../idea/projectView/KotlinProjectViewProvider.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/projectView/KotlinProjectViewProvider.kt b/idea/src/org/jetbrains/kotlin/idea/projectView/KotlinProjectViewProvider.kt index 01675f6ff06..1b1b21532b8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/projectView/KotlinProjectViewProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/projectView/KotlinProjectViewProvider.kt @@ -24,6 +24,7 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.roots.ProjectRootManager import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.asJava.KtLightClass import org.jetbrains.kotlin.idea.KotlinIconProvider import org.jetbrains.kotlin.psi.KtClassBody import org.jetbrains.kotlin.psi.KtClassOrObject @@ -39,9 +40,9 @@ class KotlinProjectViewProvider(private val myProject: Project) : SelectableTree val result = ArrayList>() for (child in children) { - val childValue = child.value + val childValue = child.value.asKtFile() - if (childValue is KtFile) { + if (childValue != null) { val declarations = childValue.declarations val mainClass = KotlinIconProvider.getMainClass(childValue) @@ -61,6 +62,12 @@ class KotlinProjectViewProvider(private val myProject: Project) : SelectableTree return result } + private fun Any.asKtFile(): KtFile? = when(this) { + is KtFile -> this + is KtLightClass -> getOrigin()?.containingFile as? KtFile + else -> null + } + override fun getData(selected: Collection>, dataName: String): Any? { return null }