show primary constructor properties in project view when "Show members" is enabled

#KT-11776 Fixed
This commit is contained in:
Dmitry Jemerov
2016-08-24 20:50:32 +02:00
parent 1cf79d9495
commit 9264c876f8
2 changed files with 6 additions and 2 deletions
@@ -88,7 +88,7 @@ class KotlinStructureViewElement(val element: NavigatablePsiElement,
private val childrenDeclarations: List<KtDeclaration>
get() = when (element) {
is KtFile -> element.declarations
is KtClass -> element.getPrimaryConstructorParameters().filter { it.hasValOrVar() } + element.declarations
is KtClass -> element.getStructureDeclarations()
is KtClassOrObject -> element.declarations
is KtFunction, is KtClassInitializer -> element.collectLocalDeclarations()
else -> emptyList()
@@ -110,3 +110,6 @@ class KotlinStructureViewElement(val element: NavigatablePsiElement,
return result
}
}
fun KtClassOrObject.getStructureDeclarations() = getPrimaryConstructorParameters().filter { it.hasValOrVar() } + declarations
@@ -24,6 +24,7 @@ import com.intellij.ide.util.treeView.AbstractTreeNode
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.idea.KotlinIconProvider
import org.jetbrains.kotlin.idea.structureView.getStructureDeclarations
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtPsiUtil
@@ -34,7 +35,7 @@ class KtClassOrObjectTreeNode(project: Project?, ktClassOrObject: KtClassOrObjec
override fun getChildrenImpl(): Collection<AbstractTreeNode<*>>? {
if (value != null && settings.isShowMembers) {
return value.declarations.map { declaration ->
return value.getStructureDeclarations().map { declaration ->
if (declaration is KtClassOrObject)
KtClassOrObjectTreeNode(project, declaration, settings)
else