Group by file structure: show groups on text search (KT-28838)

#KT-28838 Fixed
This commit is contained in:
Toshiaki Kameyama
2019-02-18 13:25:57 +03:00
committed by Nikolay Krasko
parent 76f2430e7c
commit 7149d4cd1c
@@ -20,6 +20,7 @@ import com.intellij.openapi.project.Project
import com.intellij.usages.PsiNamedElementUsageGroupBase
import com.intellij.usages.Usage
import com.intellij.usages.UsageGroup
import com.intellij.usages.UsageInfo2UsageAdapter
import com.intellij.usages.impl.FileStructureGroupRuleProvider
import com.intellij.usages.rules.PsiElementUsage
import com.intellij.usages.rules.UsageGroupingRule
@@ -30,10 +31,17 @@ import org.jetbrains.kotlin.psi.psiUtil.parents
class KotlinDeclarationGroupingRule(val level: Int = 0) : UsageGroupingRule {
override fun groupUsage(usage: Usage): UsageGroup? {
val element = (usage as? PsiElementUsage)?.element ?: return null
var element = (usage as? PsiElementUsage)?.element ?: return null
if (element.containingFile !is KtFile) return null
if (element is KtFile) {
val offset = (usage as? UsageInfo2UsageAdapter)?.usageInfo?.navigationOffset
if (offset != null) {
element = element.findElementAt(offset) ?: element
}
}
val parentList = element.parents.filterIsInstance<KtNamedDeclaration>().filterNot { it is KtProperty && it.isLocal }.toList()
if (parentList.size <= level) {
return null