aboutsummaryrefslogtreecommitdiffstats
path: root/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdRankProfileGroupingRule.java
diff options
context:
space:
mode:
Diffstat (limited to 'sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdRankProfileGroupingRule.java')
-rw-r--r--sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdRankProfileGroupingRule.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdRankProfileGroupingRule.java b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdRankProfileGroupingRule.java
new file mode 100644
index 00000000000..379f70903df
--- /dev/null
+++ b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdRankProfileGroupingRule.java
@@ -0,0 +1,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.SdRankProfileDefinition;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+public class SdRankProfileGroupingRule 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 SdRankProfileDefinition) {
+ final SdRankProfileDefinition componentElement = (SdRankProfileDefinition) psiElement;
+ return new SdUsageGroup(componentElement);
+ }
+ psiElement = psiElement.getParent();
+ }
+
+ return null;
+ }
+}