Structure view: add visibility filter for class properties
#KT-38276 Fixed
This commit is contained in:
committed by
Yan Zhulanow
parent
e2f0b76e2f
commit
9aaba8c759
@@ -83,6 +83,7 @@ searching.for.implicit.usages=Searching for implicit usages...
|
||||
class.initializer=<class initializer>
|
||||
object.0=object{0}
|
||||
show.non.public=Show non-public
|
||||
show.properties=Show properties
|
||||
|
||||
klib.metadata.short=Klib Metadata
|
||||
function.arguments=arguments:\u0020
|
||||
|
||||
+20
-1
@@ -15,6 +15,7 @@ import com.intellij.util.PlatformIcons
|
||||
import org.jetbrains.kotlin.idea.KotlinIdeaAnalysisBundle
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
||||
import org.jetbrains.kotlin.psi.psiUtil.isPropertyParameter
|
||||
|
||||
class KotlinStructureViewModel(ktFile: KtFile, editor: Editor?) :
|
||||
StructureViewModelBase(ktFile, editor, KotlinStructureViewElement(ktFile, false)),
|
||||
@@ -46,7 +47,7 @@ class KotlinStructureViewModel(ktFile: KtFile, editor: Editor?) :
|
||||
|
||||
companion object {
|
||||
private val NODE_PROVIDERS = listOf(KotlinInheritedMembersNodeProvider())
|
||||
private val FILTERS = arrayOf<Filter>(PublicElementsFilter)
|
||||
private val FILTERS = arrayOf(PropertiesFilter, PublicElementsFilter)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,3 +66,21 @@ object PublicElementsFilter : Filter {
|
||||
|
||||
const val ID = "KOTLIN_SHOW_NON_PUBLIC"
|
||||
}
|
||||
|
||||
object PropertiesFilter : Filter {
|
||||
override fun isVisible(treeNode: TreeElement): Boolean {
|
||||
val element = (treeNode as? KotlinStructureViewElement)?.element
|
||||
val isProperty = element is KtProperty && element.isMember || element is KtParameter && element.isPropertyParameter()
|
||||
return !isProperty
|
||||
}
|
||||
|
||||
override fun getPresentation(): ActionPresentation {
|
||||
return ActionPresentationData(KotlinIdeaAnalysisBundle.message("show.properties"), null, PlatformIcons.PROPERTY_ICON)
|
||||
}
|
||||
|
||||
override fun getName() = ID
|
||||
|
||||
override fun isReverted() = true
|
||||
|
||||
const val ID = "KOTLIN_SHOW_PROPERTIES"
|
||||
}
|
||||
Reference in New Issue
Block a user