diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-10-20 20:41:45 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-10-20 20:41:45 +0200 |
commit | 7231013715b350217e7d411595b11e5c20250dcc (patch) | |
tree | 27d0635c4617fa20042cc252d942f5158221774d /sd-plugin/src/main/java/org/intellij/sdk/language/SdUtil.java | |
parent | 7152e207aebb66e92c461256a437293482c24b13 (diff) | |
parent | f97460875097a318d6f57450851b23a89f9ef809 (diff) |
Merge branch 'master' into bratseth/add-missing-copyrights
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.java | 42 |
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)); } |