don't represent Kotlin project view nodes as light classes (KT-10703)

This commit is contained in:
Dmitry Jemerov
2016-01-18 19:07:51 +01:00
parent 8cca34a00e
commit 60ca1cbcf3
@@ -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<AbstractTreeNode<out Any>>()
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<AbstractTreeNode<Any>>, dataName: String): Any? {
return null
}