From ca10c40e05edaa2a078f586f70eb8a143f3db439 Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Thu, 9 Apr 2020 20:28:40 +0300 Subject: [PATCH] Remove anonymous declarations from Structure View --- .../idea/structureView/KotlinStructureViewModel.kt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/structureView/KotlinStructureViewModel.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/structureView/KotlinStructureViewModel.kt index df882d8aa59..1d441606391 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/structureView/KotlinStructureViewModel.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/structureView/KotlinStructureViewModel.kt @@ -10,22 +10,26 @@ import com.intellij.ide.structureView.StructureViewModelBase import com.intellij.ide.structureView.StructureViewTreeElement import com.intellij.ide.util.treeView.smartTree.* import com.intellij.openapi.editor.Editor +import com.intellij.psi.PsiElement import com.intellij.util.PlatformIcons import org.jetbrains.kotlin.idea.KotlinIdeaAnalysisBundle -import org.jetbrains.kotlin.psi.KtClassOrObject -import org.jetbrains.kotlin.psi.KtDeclaration -import org.jetbrains.kotlin.psi.KtEnumEntry -import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject class KotlinStructureViewModel(ktFile: KtFile, editor: Editor?) : StructureViewModelBase(ktFile, editor, KotlinStructureViewElement(ktFile, false)), StructureViewModel.ElementInfoProvider { init { - withSuitableClasses(KtDeclaration::class.java) withSorters(Sorter.ALPHA_SORTER) } + override fun isSuitable(element: PsiElement?): Boolean = element is KtDeclaration && + element !is KtPropertyAccessor && + element !is KtFunctionLiteral && + !(element is KtProperty && element.containingClassOrObject !is KtNamedDeclaration) && + !(element is KtFunction && element.containingClassOrObject !is KtNamedDeclaration) + override fun getNodeProviders() = NODE_PROVIDERS override fun getFilters() = FILTERS