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>
|
class.initializer=<class initializer>
|
||||||
object.0=object{0}
|
object.0=object{0}
|
||||||
show.non.public=Show non-public
|
show.non.public=Show non-public
|
||||||
|
show.properties=Show properties
|
||||||
|
|
||||||
klib.metadata.short=Klib Metadata
|
klib.metadata.short=Klib Metadata
|
||||||
function.arguments=arguments:\u0020
|
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.idea.KotlinIdeaAnalysisBundle
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
||||||
|
import org.jetbrains.kotlin.psi.psiUtil.isPropertyParameter
|
||||||
|
|
||||||
class KotlinStructureViewModel(ktFile: KtFile, editor: Editor?) :
|
class KotlinStructureViewModel(ktFile: KtFile, editor: Editor?) :
|
||||||
StructureViewModelBase(ktFile, editor, KotlinStructureViewElement(ktFile, false)),
|
StructureViewModelBase(ktFile, editor, KotlinStructureViewElement(ktFile, false)),
|
||||||
@@ -46,7 +47,7 @@ class KotlinStructureViewModel(ktFile: KtFile, editor: Editor?) :
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val NODE_PROVIDERS = listOf(KotlinInheritedMembersNodeProvider())
|
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"
|
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