blob: d4d38c8c38ae20ab5059fded5bdcd0fdb9a0272e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package org.intellij.sdk.language.findUsages;
import com.intellij.openapi.project.DumbAware;
import com.intellij.psi.PsiElement;
import com.intellij.usages.Usage;
import com.intellij.usages.UsageGroup;
import com.intellij.usages.UsageTarget;
import com.intellij.usages.rules.PsiElementUsage;
import com.intellij.usages.rules.SingleParentUsageGroupingRule;
import org.intellij.sdk.language.SdLanguage;
import org.intellij.sdk.language.psi.SdDocumentSummaryDefinition;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class SdDocumentSummaryGroupingRule extends SingleParentUsageGroupingRule implements DumbAware {
@Override
protected @Nullable UsageGroup getParentGroupFor(@NotNull Usage usage, UsageTarget @NotNull [] targets) {
PsiElement psiElement = usage instanceof PsiElementUsage ? ((PsiElementUsage)usage).getElement() : null;
if (psiElement == null || psiElement.getLanguage() != SdLanguage.INSTANCE) return null;
while (psiElement != null) {
if (psiElement instanceof SdDocumentSummaryDefinition) {
final SdDocumentSummaryDefinition componentElement = (SdDocumentSummaryDefinition) psiElement;
return new SdUsageGroup(componentElement);
}
psiElement = psiElement.getParent();
}
return null;
}
}
|