Group by file structure: show groups on text search (KT-28838)
#KT-28838 Fixed
This commit is contained in:
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
|
||||
|
||||
Reference in New Issue
Block a user