summaryrefslogtreecommitdiffstats
path: root/sd-plugin/src/main/java/org/intellij/sdk/language/SdUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'sd-plugin/src/main/java/org/intellij/sdk/language/SdUtil.java')
-rw-r--r--sd-plugin/src/main/java/org/intellij/sdk/language/SdUtil.java42
1 files changed, 26 insertions, 16 deletions
diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdUtil.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdUtil.java
index b46c2cd3d6f..45e5d6f4fb3 100644
--- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdUtil.java
+++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdUtil.java
@@ -11,8 +11,10 @@ import com.intellij.psi.search.FileTypeIndex;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.indexing.FileBasedIndex;
+import org.intellij.sdk.language.psi.SdAnnotationFieldDefinition;
import org.intellij.sdk.language.psi.SdArgumentDefinition;
import org.intellij.sdk.language.psi.SdDeclaration;
+import org.intellij.sdk.language.psi.SdDocumentAnnotationDefinition;
import org.intellij.sdk.language.psi.SdDocumentDefinition;
import org.intellij.sdk.language.psi.SdDocumentFieldDefinition;
import org.intellij.sdk.language.psi.SdDocumentStructDefinition;
@@ -24,6 +26,7 @@ import org.intellij.sdk.language.psi.SdFunctionDefinition;
import org.intellij.sdk.language.psi.SdIdentifier;
import org.intellij.sdk.language.psi.SdImportFieldDefinition;
import org.intellij.sdk.language.psi.SdRankProfileDefinition;
+import org.intellij.sdk.language.psi.SdSchemaAnnotationDefinition;
import org.intellij.sdk.language.psi.SdSchemaFieldDefinition;
import org.intellij.sdk.language.psi.SdSummaryDefinition;
import org.intellij.sdk.language.psi.SdTypes;
@@ -34,6 +37,10 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
+/**
+ * This is the util class for the plugin's code.
+ * @author shahariel
+ */
public class SdUtil {
public static @NotNull HashMap<String, List<PsiElement>> createMacrosMap(SdFile file) {
@@ -111,12 +118,12 @@ public class SdUtil {
if (element.getParent() instanceof SdImportFieldDefinition &&
element.getNextSibling().getNextSibling().getText().equals("as")) {
Project project = file.getProject();
-
+
PsiReference docFieldRef = element.getPrevSibling().getPrevSibling().getReference();
PsiElement docField = docFieldRef != null ? docFieldRef.resolve() : null;
SdFieldTypeName fieldType = docField != null ? PsiTreeUtil.findChildOfType(docField, SdFieldTypeName.class) : null;
SdIdentifier docIdentifier = fieldType != null ? PsiTreeUtil.findChildOfType(fieldType, SdIdentifier.class) : null;
- String docName = docIdentifier != null ? docIdentifier.getName() : null;
+ String docName = docIdentifier != null ? docIdentifier.getName() : null;
if (docName == null) {
return result;
}
@@ -166,8 +173,8 @@ public class SdUtil {
curRankProfile = getRankProfileParent((SdRankProfileDefinition) curRankProfile);
}
}
-
- for (PsiElement declaration : PsiTreeUtil.collectElements(file, psiElement ->
+
+ for (PsiElement declaration : PsiTreeUtil.collectElements(file, psiElement ->
psiElement instanceof SdDeclaration && !(psiElement instanceof SdArgumentDefinition))) {
if (name.equals(((SdDeclaration) declaration).getName())) {
result.add((SdDeclaration) declaration);
@@ -184,30 +191,33 @@ public class SdUtil {
public static List<PsiElement> findSchemaChildren(PsiElement element) {
return new ArrayList<>(PsiTreeUtil.collectElementsOfType(element, new Class[]{SdDocumentDefinition.class,
- SdSchemaFieldDefinition.class,
- SdImportFieldDefinition.class,
- SdDocumentSummaryDefinition.class,
- SdRankProfileDefinition.class}));
+ SdSchemaFieldDefinition.class,
+ SdImportFieldDefinition.class,
+ SdSchemaAnnotationDefinition.class,
+ SdDocumentSummaryDefinition.class,
+ SdRankProfileDefinition.class}));
+ }
+
+ public static List<PsiElement> findAnnotationChildren(PsiElement element) {
+ return new ArrayList<>(PsiTreeUtil.collectElementsOfType(element, SdAnnotationFieldDefinition.class));
}
public static List<PsiElement> findDocumentChildren(PsiElement element) {
- return new ArrayList<>(PsiTreeUtil.collectElementsOfType(element, new Class[]{SdDocumentStructDefinition.class,
- SdDocumentFieldDefinition.class}));
+ return new ArrayList<>(PsiTreeUtil.collectElementsOfType(element, new Class[]{SdDocumentStructDefinition.class,
+ SdDocumentAnnotationDefinition.class,
+ SdDocumentFieldDefinition.class}));
}
public static List<PsiElement> findDocumentStructChildren(PsiElement element) {
- return new ArrayList<>(PsiTreeUtil.collectElementsOfType(element,
- SdDocumentStructFieldDefinition.class));
+ return new ArrayList<>(PsiTreeUtil.collectElementsOfType(element, SdDocumentStructFieldDefinition.class));
}
public static List<PsiElement> findRankProfileChildren(PsiElement element) {
- return new ArrayList<>(PsiTreeUtil.collectElementsOfType(element,
- SdFunctionDefinition.class));
+ return new ArrayList<>(PsiTreeUtil.collectElementsOfType(element, SdFunctionDefinition.class));
}
public static List<PsiElement> findDocumentSummaryChildren(PsiElement element) {
- return new ArrayList<>(PsiTreeUtil.collectElementsOfType(element,
- SdSummaryDefinition.class));
+ return new ArrayList<>(PsiTreeUtil.collectElementsOfType(element, SdSummaryDefinition.class));
}