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>
|
private val childrenDeclarations: List<KtDeclaration>
|
||||||
get() = when (element) {
|
get() = when (element) {
|
||||||
is KtFile -> element.declarations
|
is KtFile -> element.declarations
|
||||||
is KtClass -> element.getPrimaryConstructorParameters().filter { it.hasValOrVar() } + element.declarations
|
is KtClass -> element.getStructureDeclarations()
|
||||||
is KtClassOrObject -> element.declarations
|
is KtClassOrObject -> element.declarations
|
||||||
is KtFunction, is KtClassInitializer -> element.collectLocalDeclarations()
|
is KtFunction, is KtClassInitializer -> element.collectLocalDeclarations()
|
||||||
else -> emptyList()
|
else -> emptyList()
|
||||||
@@ -110,3 +110,6 @@ class KotlinStructureViewElement(val element: NavigatablePsiElement,
|
|||||||
return result
|
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.openapi.project.Project
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.idea.KotlinIconProvider
|
import org.jetbrains.kotlin.idea.KotlinIconProvider
|
||||||
|
import org.jetbrains.kotlin.idea.structureView.getStructureDeclarations
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
import org.jetbrains.kotlin.psi.KtPsiUtil
|
import org.jetbrains.kotlin.psi.KtPsiUtil
|
||||||
|
|
||||||
@@ -34,7 +35,7 @@ class KtClassOrObjectTreeNode(project: Project?, ktClassOrObject: KtClassOrObjec
|
|||||||
|
|
||||||
override fun getChildrenImpl(): Collection<AbstractTreeNode<*>>? {
|
override fun getChildrenImpl(): Collection<AbstractTreeNode<*>>? {
|
||||||
if (value != null && settings.isShowMembers) {
|
if (value != null && settings.isShowMembers) {
|
||||||
return value.declarations.map { declaration ->
|
return value.getStructureDeclarations().map { declaration ->
|
||||||
if (declaration is KtClassOrObject)
|
if (declaration is KtClassOrObject)
|
||||||
KtClassOrObjectTreeNode(project, declaration, settings)
|
KtClassOrObjectTreeNode(project, declaration, settings)
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user