From e462a97c64aa4e8885ec8f8ab77e0416c1d49c15 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 25 Aug 2016 19:02:59 +0200 Subject: [PATCH] show two levels of hierarchy when grouping find usages by file structure #KT-9019 Fixed #KT-10178 Fixed --- idea/src/META-INF/plugin.xml | 1 + .../KotlinDeclarationGroupRuleProvider.kt | 45 ++++++++++--------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index 4030adc4034..04b8ef604a2 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -339,6 +339,7 @@ + - PsiNamedElementUsageGroupBase(container) - } + val parentList = element.parents.filterIsInstance().toList() + if (parentList.size <= level) { + return null } + return PsiNamedElementUsageGroupBase(parentList[parentList.size - level - 1]) } - - override fun getUsageGroupingRule(project: Project): UsageGroupingRule = KotlinDeclarationGroupingRule() } +class KotlinDeclarationGroupRuleProvider : FileStructureGroupRuleProvider { + override fun getUsageGroupingRule(project: Project): UsageGroupingRule = KotlinDeclarationGroupingRule(0) +} +class KotlinDeclarationSecondLevelGroupRuleProvider : FileStructureGroupRuleProvider { + override fun getUsageGroupingRule(project: Project): UsageGroupingRule = KotlinDeclarationGroupingRule(1) +}