show primary constructor properties in project view when "Show members" is enabled
#KT-11776 Fixed
This commit is contained in:
+4
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user