diff options
53 files changed, 131 insertions, 87 deletions
diff --git a/sd-plugin/build.gradle b/sd-plugin/build.gradle index 5a0c37dbf33..90a137ce473 100644 --- a/sd-plugin/build.gradle +++ b/sd-plugin/build.gradle @@ -1,4 +1,4 @@ -// This "noinspection" comment is here to fix a warning +// This "noinspection" comment below is here to fix a warning //noinspection GroovyAssignabilityCheck plugins { id 'org.jetbrains.intellij' version '1.1.4' @@ -35,12 +35,12 @@ compileJava { } -group 'org.vz.native' -version '1.0.1' +group 'org.yahoo.native' +version '1.0.0' sourceCompatibility = 11 -// This "noinspection" comment is here to fix a warning +// This "noinspection" comment below is here to fix a warning //noinspection GroovyAssignabilityCheck repositories { mavenCentral() diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdChooseByNameContributor.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdChooseByNameContributor.java index f313bb2be59..99bebe21b87 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdChooseByNameContributor.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdChooseByNameContributor.java @@ -8,7 +8,6 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiManager; import com.intellij.psi.search.FileTypeIndex; import com.intellij.psi.search.GlobalSearchScope; -import com.intellij.util.indexing.FileBasedIndex; import org.intellij.sdk.language.psi.SdDeclaration; import org.intellij.sdk.language.psi.SdFile; import org.jetbrains.annotations.NotNull; @@ -19,17 +18,13 @@ import java.util.List; /** * This class is used for the extension (in plugin.xml) to enable "Go To Symbol" feature. - * @author shahariel + * @author Shahar Ariel */ public class SdChooseByNameContributor implements ChooseByNameContributor { @Override public String @NotNull [] getNames(Project project, boolean includeNonProjectItems) { - Collection<VirtualFile> virtualFiles = FileBasedIndex.getInstance().getContainingFiles( - FileTypeIndex.NAME, - SdFileType.INSTANCE, - GlobalSearchScope.allScope(project) - ); + Collection<VirtualFile> virtualFiles = FileTypeIndex.getFiles(SdFileType.INSTANCE, GlobalSearchScope.allScope(project)); List<SdDeclaration> declarations = new ArrayList<>(); @@ -47,11 +42,7 @@ public class SdChooseByNameContributor implements ChooseByNameContributor { @Override public NavigationItem @NotNull [] getItemsByName(String name, String pattern, Project project, boolean includeNonProjectItems) { - Collection<VirtualFile> virtualFiles = FileBasedIndex.getInstance().getContainingFiles( - FileTypeIndex.NAME, - SdFileType.INSTANCE, - GlobalSearchScope.allScope(project) - ); + Collection<VirtualFile> virtualFiles = FileTypeIndex.getFiles(SdFileType.INSTANCE, GlobalSearchScope.allScope(project)); List<SdDeclaration> declarations = new ArrayList<>(); diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdCodeStyleSettings.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdCodeStyleSettings.java index 89460099790..93c3e7ccc50 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdCodeStyleSettings.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdCodeStyleSettings.java @@ -6,7 +6,7 @@ import com.intellij.psi.codeStyle.CustomCodeStyleSettings; /** * This class represent a code style settings, and creates an option page in settings/preferences. - * @author shahariel + * @author Shahar Ariel */ public class SdCodeStyleSettings extends CustomCodeStyleSettings { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdCodeStyleSettingsProvider.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdCodeStyleSettingsProvider.java index 3b8136f92b3..3b075b0f438 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdCodeStyleSettingsProvider.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdCodeStyleSettingsProvider.java @@ -13,7 +13,7 @@ import org.jetbrains.annotations.Nullable; /** * This class is used for the extension (in plugin.xml) to the class SdCodeStyleSettings. - * @author shahariel + * @author Shahar Ariel */ public class SdCodeStyleSettingsProvider extends CodeStyleSettingsProvider { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdCommenter.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdCommenter.java index 5d9fbfaa07d..d0f28848cf0 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdCommenter.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdCommenter.java @@ -7,7 +7,7 @@ import org.jetbrains.annotations.Nullable; /** * This class is used for the extension (in plugin.xml), to enable turning a line into a comment with * "Code -> Comment with line comment". - * @author shahariel + * @author Shahar Ariel */ public class SdCommenter implements Commenter { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdCompletionContributor.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdCompletionContributor.java index 7cf517ba2e9..8bcda614ee7 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdCompletionContributor.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdCompletionContributor.java @@ -14,7 +14,7 @@ import org.jetbrains.annotations.NotNull; /** * This class is used for the extension (in plugin.xml) to enables Auto-Complete. Partially works for now. - * @author shahariel + * @author Shahar Ariel */ public class SdCompletionContributor extends CompletionContributor { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdFileType.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdFileType.java index 0f6189abbe6..ccc4c6b6348 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdFileType.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdFileType.java @@ -9,7 +9,7 @@ import javax.swing.Icon; /** * This class is used for the extension (in plugin.xml), to define SD as a file's type. - * @author shahariel + * @author Shahar Ariel */ public class SdFileType extends LanguageFileType { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdIcons.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdIcons.java index 21c46f15e55..806fcd6b6ba 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdIcons.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdIcons.java @@ -7,7 +7,7 @@ import javax.swing.Icon; /** * This class is used for defining Icons for the IDE. - * @author shahariel + * @author Shahar Ariel */ public class SdIcons { public static final Icon FILE = IconLoader.getIcon("icons/sd_icon.png", SdIcons.class); diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdLanguage.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdLanguage.java index d283514076d..fa253c4d605 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdLanguage.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdLanguage.java @@ -5,7 +5,7 @@ import com.intellij.lang.Language; /** * This class defines SD as a language. - * @author shahariel + * @author Shahar Ariel */ public class SdLanguage extends Language { public static final SdLanguage INSTANCE = new SdLanguage(); diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdLanguageCodeStyleSettingsProvider.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdLanguageCodeStyleSettingsProvider.java index efe4e9ea0ae..24fef3af40c 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdLanguageCodeStyleSettingsProvider.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdLanguageCodeStyleSettingsProvider.java @@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull; /** * This class is used for the extension (in plugin.xml), to make the IDE use our plugin's code for coding style. - * @author shahariel + * @author Shahar Ariel */ public class SdLanguageCodeStyleSettingsProvider extends LanguageCodeStyleSettingsProvider { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdLexerAdapter.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdLexerAdapter.java index c9137fa9234..58329222a19 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdLexerAdapter.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdLexerAdapter.java @@ -5,7 +5,7 @@ import com.intellij.lexer.FlexAdapter; /** * This class adapts the JFlex lexer to the IntelliJ Platform Lexer API. - * @author shahariel + * @author Shahar Ariel */ public class SdLexerAdapter extends FlexAdapter { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdRefactoringSupportProvider.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdRefactoringSupportProvider.java index 4f602c56576..1b5cba028a7 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdRefactoringSupportProvider.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdRefactoringSupportProvider.java @@ -9,7 +9,7 @@ import org.jetbrains.annotations.Nullable; /** * This class is used for the extension (in plugin.xml), to enable refactoring. - * @author shahariel + * @author Shahar Ariel */ public class SdRefactoringSupportProvider extends RefactoringSupportProvider { @Override diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdReference.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdReference.java index 3cb41bb6132..bce51ccc2ff 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdReference.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdReference.java @@ -20,7 +20,7 @@ import java.util.List; /** * This class represent a reference to a Psi Element. - * @author shahariel + * @author Shahar Ariel */ public class SdReference extends PsiReferenceBase<PsiElement> implements PsiPolyVariantReference { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighter.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighter.java index 31acd5ff730..aaceaaa02cd 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighter.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighter.java @@ -17,7 +17,7 @@ import java.util.HashSet; /** * This class defines the syntax highlighting of an SD file. - * @author shahariel + * @author Shahar Ariel */ public class SdSyntaxHighlighter extends SyntaxHighlighterBase { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighterFactory.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighterFactory.java index b2ace3156e9..618e188f680 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighterFactory.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighterFactory.java @@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull; /** * This class is used for the extension (in plugin.xml) to the class SdSyntaxHighlighter. - * @author shahariel + * @author Shahar Ariel */ public class SdSyntaxHighlighterFactory extends SyntaxHighlighterFactory { 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 92e7c9e6f85..5d6cd85489f 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,7 +11,6 @@ import com.intellij.psi.PsiReference; 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; @@ -40,7 +39,7 @@ import java.util.List; /** * This is the util class for the plugin's code. - * @author shahariel + * @author Shahar Ariel */ public class SdUtil { @@ -75,8 +74,8 @@ public class SdUtil { } } SdIdentifier ancestorIdentifier = (SdIdentifier) ancestorAST.getPsi(); - return ancestorIdentifier.getReference().resolve(); - + PsiReference ref = ancestorIdentifier.getReference(); + return ref != null ? ref.resolve() : null; } public static String createFunctionDescription(SdFunctionDefinition macro) { @@ -128,12 +127,9 @@ public class SdUtil { if (docName == null) { return result; } - - Collection<VirtualFile> virtualFiles = FileBasedIndex.getInstance().getContainingFiles( - FileTypeIndex.NAME, - SdFileType.INSTANCE, - GlobalSearchScope.allScope(project) - ); + + Collection<VirtualFile> virtualFiles = FileTypeIndex.getFiles(SdFileType.INSTANCE, GlobalSearchScope.allScope(project)); + for (VirtualFile vfile : virtualFiles) { SdFile sdFile = (SdFile) PsiManager.getInstance(project).findFile(vfile); if (sdFile != null && !sdFile.getName().equals(docName + ".sd")) { @@ -166,7 +162,7 @@ public class SdUtil { PsiElement curRankProfile = PsiTreeUtil.getParentOfType(element, SdRankProfileDefinition.class); while (curRankProfile != null) { for (SdFunctionDefinition macro : PsiTreeUtil.collectElementsOfType(curRankProfile, SdFunctionDefinition.class)) { - if (macro.getName().equals(name)) { + if (macro.getName() != null && macro.getName().equals(name)) { result.add(macro); return result; } diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdDocumentSummaryGroupingRule.java b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdDocumentSummaryGroupingRule.java index 8047e198d88..ba081e9d415 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdDocumentSummaryGroupingRule.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdDocumentSummaryGroupingRule.java @@ -15,7 +15,7 @@ import org.jetbrains.annotations.Nullable; /** * This class represent a Document Summary that groups elements in the "Find Usages" window. - * @author shahariel + * @author Shahar Ariel */ public class SdDocumentSummaryGroupingRule extends SingleParentUsageGroupingRule implements DumbAware { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdDocumentSummaryGroupingRuleProvider.java b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdDocumentSummaryGroupingRuleProvider.java index ff519436994..0e6f0358ca5 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdDocumentSummaryGroupingRuleProvider.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdDocumentSummaryGroupingRuleProvider.java @@ -9,7 +9,7 @@ import org.jetbrains.annotations.Nullable; /** * This class is used for the extension (in plugin.xml) to the class SdDocumentSummaryGroupingRule. - * @author shahariel + * @author Shahar Ariel */ public class SdDocumentSummaryGroupingRuleProvider implements FileStructureGroupRuleProvider { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesHandler.java b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesHandler.java index 6841f608efd..b48c35e5c49 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesHandler.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesHandler.java @@ -23,7 +23,7 @@ import java.util.List; /** * This class handles creating the "Find Usages" window. - * @author shahariel + * @author Shahar Ariel */ public class SdFindUsagesHandler extends FindUsagesHandler { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesHandlerFactory.java b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesHandlerFactory.java index 2ccd7f6ea41..b96cad508f7 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesHandlerFactory.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesHandlerFactory.java @@ -10,7 +10,7 @@ import org.jetbrains.annotations.Nullable; /** * This class is used for the extension (in plugin.xml) to the class SdFindUsagesHandler. - * @author shahariel + * @author Shahar Ariel */ public class SdFindUsagesHandlerFactory extends FindUsagesHandlerFactory { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesProvider.java b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesProvider.java index ba71c864ce5..56aaae6d02a 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesProvider.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesProvider.java @@ -18,7 +18,7 @@ import org.jetbrains.annotations.Nullable; /** * This class is used for the extension (in plugin.xml), to enable "find Usages" window using the plugin code. - * @author shahariel + * @author Shahar Ariel */ public class SdFindUsagesProvider implements FindUsagesProvider { @Nullable 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 index 77de9fd9534..1fa848313e0 100644 --- 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 @@ -15,7 +15,7 @@ import org.jetbrains.annotations.Nullable; /** * This class represent a Rank Profile that groups elements in the "Find Usages" window. - * @author shahariel + * @author Shahar Ariel */ public class SdRankProfileGroupingRule extends SingleParentUsageGroupingRule implements DumbAware { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdRankProfileGroupingRuleProvider.java b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdRankProfileGroupingRuleProvider.java index 7527b93c947..0b973a56644 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdRankProfileGroupingRuleProvider.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdRankProfileGroupingRuleProvider.java @@ -9,7 +9,7 @@ import org.jetbrains.annotations.Nullable; /** * This class is used for the extension (in plugin.xml) to the class SdRankProfileGroupingRule. - * @author shahariel + * @author Shahar Ariel */ public class SdRankProfileGroupingRuleProvider implements FileStructureGroupRuleProvider { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdUsageGroup.java b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdUsageGroup.java index 9042be84d75..0423db89cd6 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdUsageGroup.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdUsageGroup.java @@ -3,7 +3,6 @@ package org.intellij.sdk.language.findUsages; import com.intellij.navigation.ItemPresentation; import com.intellij.navigation.NavigationItemFileStatus; -import com.intellij.openapi.util.NlsSafe; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vcs.FileStatus; import com.intellij.openapi.vfs.VirtualFile; @@ -18,7 +17,7 @@ import javax.swing.*; /** * This class represent a group of elements in the "Find Usages" window. - * @author shahariel + * @author Shahar Ariel */ public class SdUsageGroup implements UsageGroup { private final VirtualFile myFile; @@ -91,4 +90,7 @@ public class SdUsageGroup implements UsageGroup { public @Nullable Icon getIcon() { return myIcon; } + + @Override + public void update() {} // here because JetBrains asked } diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallHierarchyBrowser.java b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallHierarchyBrowser.java index 417cab307d4..46b4e738fcb 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallHierarchyBrowser.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallHierarchyBrowser.java @@ -7,11 +7,9 @@ import com.intellij.ide.hierarchy.HierarchyTreeStructure; import com.intellij.ide.util.treeView.NodeDescriptor; import com.intellij.openapi.actionSystem.ActionGroup; import com.intellij.openapi.actionSystem.ActionManager; -import com.intellij.openapi.actionSystem.ActionPlaces; import com.intellij.openapi.actionSystem.IdeActions; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; -import com.intellij.ui.PopupHandler; import com.intellij.util.ObjectUtils; import org.intellij.sdk.language.psi.SdFunctionDefinition; import org.jetbrains.annotations.NotNull; @@ -24,7 +22,7 @@ import javax.swing.JTree; /** * This class is a browser for the "Call Hierarchy" window. - * @author shahariel + * @author Shahar Ariel */ public class SdCallHierarchyBrowser extends CallHierarchyBrowserBase { @@ -46,10 +44,8 @@ public class SdCallHierarchyBrowser extends CallHierarchyBrowserBase { type2TreeMap.put(getCalleeType(), createHierarchyTree(group)); } - private JTree createHierarchyTree(ActionGroup group) { - final JTree tree = createTree(false); - PopupHandler.installPopupMenu(tree, group, ActionPlaces.CALL_HIERARCHY_VIEW_POPUP); - return tree; + private @NotNull JTree createHierarchyTree(ActionGroup group) { + return createTree(false); } @Override diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallHierarchyNodeDescriptor.java b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallHierarchyNodeDescriptor.java index df6db46ff6f..fdd8871201e 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallHierarchyNodeDescriptor.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallHierarchyNodeDescriptor.java @@ -22,7 +22,7 @@ import javax.swing.Icon; /** * This class represents a node descriptor to a node in a tree in the "Call Hierarchy" window. - * @author shahariel + * @author Shahar Ariel */ public class SdCallHierarchyNodeDescriptor extends HierarchyNodeDescriptor { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallHierarchyProvider.java b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallHierarchyProvider.java index 5566e1f71e1..4808c55f1ae 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallHierarchyProvider.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallHierarchyProvider.java @@ -20,7 +20,7 @@ import com.intellij.openapi.project.Project; /** * This class is used for the extension (in plugin.xml), to enable "Call Hierarchy" window using the plugin code. - * @author shahariel + * @author Shahar Ariel */ public class SdCallHierarchyProvider implements HierarchyProvider { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallTreeStructure.java b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallTreeStructure.java index a5d8492b521..0f843d9fe6a 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallTreeStructure.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallTreeStructure.java @@ -21,7 +21,7 @@ import java.util.List; /** * This abstract class represents a general tree in the "Call Hierarchy" window. - * @author shahariel + * @author Shahar Ariel */ public abstract class SdCallTreeStructure extends HierarchyTreeStructure { protected final String myScopeType; diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCalleeTreeStructure.java b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCalleeTreeStructure.java index f683fe0139a..cce1ebf172a 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCalleeTreeStructure.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCalleeTreeStructure.java @@ -18,7 +18,7 @@ import java.util.List; /** * This class represents a Callee tree in the "Call Hierarchy" window. - * @author shahariel + * @author Shahar Ariel */ public class SdCalleeTreeStructure extends SdCallTreeStructure { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallerTreeStructure.java b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallerTreeStructure.java index 4a30dd7492f..1ab2f6613d9 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallerTreeStructure.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdCallerTreeStructure.java @@ -20,7 +20,7 @@ import java.util.function.Consumer; /** * This class represents a Caller tree in the "Call Hierarchy" window. - * @author shahariel + * @author Shahar Ariel */ public class SdCallerTreeStructure extends SdCallTreeStructure { @@ -52,7 +52,7 @@ public class SdCallerTreeStructure extends SdCallTreeStructure { ProgressManager.checkCanceled(); PsiElement psiElement = r.getElement(); SdFunctionDefinition f = PsiTreeUtil.getParentOfType(psiElement, SdFunctionDefinition.class, false); - if (f != null && !f.getName().equals(macroName)) { + if (f != null && f.getName() != null && !f.getName().equals(macroName)) { ContainerUtil.addIfNotNull(results, f); } else { SdFirstPhaseDefinition fp = PsiTreeUtil.getParentOfType(psiElement, SdFirstPhaseDefinition.class, false); diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdHierarchyUtil.java b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdHierarchyUtil.java index c3e59124ef8..19f9d72f6f4 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdHierarchyUtil.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/hierarchy/SdHierarchyUtil.java @@ -18,7 +18,7 @@ import java.util.HashSet; /** * This class is util class to the Call Hierarchy feature. - * @author shahariel + * @author Shahar Ariel */ public class SdHierarchyUtil { @@ -42,7 +42,8 @@ public class SdHierarchyUtil { HashSet<SdRankProfileDefinition> tempRanks = new HashSet<>(); SdRankProfileDefinition curRank = rank; while (curRank != null) { - if (curRank.getName().equals(rankProfileTarget.getName())) { + String curRankName = curRank.getName(); + if (curRankName != null && curRankName.equals(rankProfileTarget.getName())) { result.addAll(tempRanks); break; } diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/lexer/sd.flex b/sd-plugin/src/main/java/org/intellij/sdk/language/lexer/sd.flex index e24769c9d2a..47dddb9c33f 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/lexer/sd.flex +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/lexer/sd.flex @@ -12,7 +12,7 @@ import static com.intellij.psi.TokenType.WHITE_SPACE; // Pre-defined whitespace /* * This file is used for the generation of the lexer of the SD language. -* @author shahariel +* @author Shahar Ariel */ %% diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/parser/SdParserDefinition.java b/sd-plugin/src/main/java/org/intellij/sdk/language/parser/SdParserDefinition.java index b084dad7816..fbaa8d0cac5 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/parser/SdParserDefinition.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/parser/SdParserDefinition.java @@ -20,7 +20,7 @@ import org.jetbrains.annotations.NotNull; /** * This class is used for the extension (in plugin.xml), to make the parsing process use the plugin code. - * @author shahariel + * @author Shahar Ariel */ public class SdParserDefinition implements ParserDefinition { public static final TokenSet WHITE_SPACES = TokenSet.create(TokenType.WHITE_SPACE); diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/parser/sd.bnf b/sd-plugin/src/main/java/org/intellij/sdk/language/parser/sd.bnf index 404f8437865..6ae9d26729c 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/parser/sd.bnf +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/parser/sd.bnf @@ -1,7 +1,7 @@ /** This file is the SD grammar. NOTE: This grammar does not enforce zero-or-one occurrences of elements (treats it like zero-to-many) -@author: shahariel +@author: Shahar Ariel */ { @@ -330,7 +330,7 @@ KeywordOrIdentifier ::= schema | search | document | struct | field | type | ind bolding | on | off | true | false | id | normalizing | stemming | arity | hnsw | dictionary | hash | btree | fieldset | fields | constant | annotation | attribute | body | header | index | - reference | summary | set_language a + reference | summary | set_language // Note- in this form, those keywords can't be use as identifier-with-dash! KeywordNotIdentifier ::= struct-field | document-summary | omit-summary-features | from-disk | rank-profile | rank-type | diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdDeclaration.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdDeclaration.java index 3fa6739161b..4f11a2b4b67 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdDeclaration.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdDeclaration.java @@ -6,6 +6,6 @@ import com.intellij.psi.PsiElement; /** * This interface represents a declaration in the SD language. - * @author shahariel + * @author Shahar Ariel */ public interface SdDeclaration extends PsiElement, NavigationItem, SdNamedElement {} diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdDeclarationType.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdDeclarationType.java index 5ea5968f0bb..c19e21d0f19 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdDeclarationType.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdDeclarationType.java @@ -3,7 +3,7 @@ package org.intellij.sdk.language.psi; /** * This Enum describes the different declarations' types and their names. - * @author shahariel + * @author Shahar Ariel */ public enum SdDeclarationType { DOCUMENT("Document"), diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementDescriptionProvider.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementDescriptionProvider.java index b2e99a9538a..76c4454b3b2 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementDescriptionProvider.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementDescriptionProvider.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.Nullable; /** * This class is used for the extension (in plugin.xml), to enable "find Usages" window take the element description from * here. Used only for the "target" element. - * @author shahariel + * @author Shahar Ariel */ public class SdElementDescriptionProvider implements ElementDescriptionProvider { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java index 9cb9690cd5b..1f3b98b6012 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java @@ -9,7 +9,7 @@ import org.intellij.sdk.language.SdFileType; /** * This class is a factory of psi elements in the SD PSI tree. - * @author shahariel + * @author Shahar Ariel */ public class SdElementFactory { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementType.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementType.java index a091d444d8e..b26cd66455d 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementType.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementType.java @@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull; /** * This class represent a SdElementType. - * @author shahariel + * @author Shahar Ariel */ public class SdElementType extends IElementType { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdFile.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdFile.java index c044bdeeddd..c2d9249bce1 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdFile.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdFile.java @@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull; /** * This class represent an SD file. - * @author shahariel + * @author Shahar Ariel */ public class SdFile extends PsiFileBase { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdFunctionDefinitionInterface.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdFunctionDefinitionInterface.java index d3738171343..78d964b45c9 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdFunctionDefinitionInterface.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdFunctionDefinitionInterface.java @@ -5,7 +5,7 @@ import org.intellij.sdk.language.SdUtil; /** * This interface represents a function's declaration in the SD language. - * @author shahariel + * @author Shahar Ariel */ public interface SdFunctionDefinitionInterface extends SdDeclaration { default boolean isOverride() { @@ -17,7 +17,7 @@ public interface SdFunctionDefinitionInterface extends SdDeclaration { } while (curRankProfile != null) { for (SdFunctionDefinition macro : PsiTreeUtil.collectElementsOfType(curRankProfile, SdFunctionDefinition.class)) { - if (macro.getName().equals(macroName)) { + if (macro.getName() != null && macro.getName().equals(macroName)) { return true; } } diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdIdentifier.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdIdentifier.java index 141d0abd403..e20eb4cb6c4 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdIdentifier.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdIdentifier.java @@ -6,7 +6,7 @@ import com.intellij.psi.util.PsiTreeUtil; /** * This interface represents an identifier in the SD language (regular identifiers and identifiers with dash). - * @author shahariel + * @author Shahar Ariel */ public interface SdIdentifier extends PsiElement { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdNamedElement.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdNamedElement.java index bd74a87b551..6e56f548410 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdNamedElement.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdNamedElement.java @@ -6,7 +6,7 @@ import com.intellij.psi.PsiNameIdentifierOwner; /** * This interface is used to wrap a Psi Element with SdNamedElement interface, which enables the element to be a * "name owner" (like an identifier). It allows the element to take a part in references, find usages and more. - * @author shahariel + * @author Shahar Ariel */ public interface SdNamedElement extends PsiNameIdentifierOwner { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdTokenType.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdTokenType.java index 98e7494389d..1024995832d 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdTokenType.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdTokenType.java @@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull; /** * This class represent a SdTokenType. - * @author shahariel + * @author Shahar Ariel */ public class SdTokenType extends IElementType { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdFirstPhaseDefinitionMixin.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdFirstPhaseDefinitionMixin.java new file mode 100644 index 00000000000..1a13318a38f --- /dev/null +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdFirstPhaseDefinitionMixin.java @@ -0,0 +1,58 @@ +package org.intellij.sdk.language.psi.impl; + +import com.intellij.extapi.psi.ASTWrapperPsiElement; +import com.intellij.lang.ASTNode; +import com.intellij.navigation.ItemPresentation; +import com.intellij.psi.util.PsiTreeUtil; +import org.intellij.sdk.language.SdIcons; +import org.intellij.sdk.language.psi.SdRankProfileDefinition; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import javax.swing.Icon; + +/** + * This class is used for methods' implementations for SdFirstPhaseDefinition. Connected with "mixin" to + * FirstPhaseDefinition rule in sd.bnf + * @author Shahar Ariel + */ +public class SdFirstPhaseDefinitionMixin extends ASTWrapperPsiElement { + + public SdFirstPhaseDefinitionMixin(@NotNull ASTNode node) { + super(node); + } + + @NotNull + public String getName() { + SdRankProfileDefinition rankProfile = PsiTreeUtil.getParentOfType(this, SdRankProfileDefinition.class); + if (rankProfile == null) { + return ""; + } + return "first-phase of " + rankProfile.getName(); + } + + public ItemPresentation getPresentation() { + final SdFirstPhaseDefinitionMixin element = this; + return new ItemPresentation() { + @Override + public String getPresentableText() { + SdRankProfileDefinition rankProfile = PsiTreeUtil.getParentOfType(element, SdRankProfileDefinition.class); + if (rankProfile == null) { + return ""; + } + return "first-phase of " + rankProfile.getName(); + } + + @Nullable + @Override + public String getLocationString() { + return element.getContainingFile() != null ? element.getContainingFile().getName() : null; + } + + @Override + public Icon getIcon(boolean unused) { + return SdIcons.FIRST_PHASE; + } + }; + } +} diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdIdentifierMixin.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdIdentifierMixin.java index 951f90b0793..536dfc4f2cc 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdIdentifierMixin.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdIdentifierMixin.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull; /** * This abstract class is used for methods' implementations for SdIdentifier. Connected with "mixin" to IdentifierVal and * IdentifierWithDashVal rules in sd.bnf - * @author shahariel + * @author Shahar Ariel */ public abstract class SdIdentifierMixin extends SdIdentifierMixinImpl implements PsiNamedElement { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdIdentifierMixinImpl.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdIdentifierMixinImpl.java index 69ccf9eda2a..7b738cc1b0f 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdIdentifierMixinImpl.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdIdentifierMixinImpl.java @@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull; /** * This class is used for methods' implementations for SdIdentifier. The abstract class SdIdentifierMixin extents it. - * @author shahariel + * @author Shahar Ariel */ public class SdIdentifierMixinImpl extends ASTWrapperPsiElement implements SdIdentifier { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdNamedElementImpl.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdNamedElementImpl.java index 0bc1a1eaad3..2c2a7aae3b1 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdNamedElementImpl.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdNamedElementImpl.java @@ -38,7 +38,7 @@ import javax.swing.Icon; /** * This abstract class is used to wrap a Psi Element with SdNamedElement interface, which enables the element to be a * "name owner" (like an identifier). It allows the element to take a part in references, find usages and more. - * @author shahariel + * @author Shahar Ariel */ public abstract class SdNamedElementImpl extends ASTWrapperPsiElement implements SdNamedElement { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdSummaryDefinitionMixin.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdSummaryDefinitionMixin.java index 7c56acce1e9..085b1e04102 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdSummaryDefinitionMixin.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/impl/SdSummaryDefinitionMixin.java @@ -13,7 +13,7 @@ import javax.swing.Icon; /** * This class is used for methods' implementations for SdSummaryDefinition. Connected with "mixin" to SummaryDefinition * rule in sd.bnf - * @author shahariel + * @author Shahar Ariel */ public abstract class SdSummaryDefinitionMixin extends ASTWrapperPsiElement { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/structure/SdStructureViewElement.java b/sd-plugin/src/main/java/org/intellij/sdk/language/structure/SdStructureViewElement.java index 493047c0363..67bda9ced19 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/structure/SdStructureViewElement.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/structure/SdStructureViewElement.java @@ -23,7 +23,7 @@ import java.util.List; /** * This class is used for the presentation of an element in the "Structure View" window. - * @author shahariel + * @author Shahar Ariel */ public class SdStructureViewElement implements StructureViewTreeElement, SortableTreeElement { diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/structure/SdStructureViewFactory.java b/sd-plugin/src/main/java/org/intellij/sdk/language/structure/SdStructureViewFactory.java index 6ca4c979ef0..2e902beb2ad 100644 --- a/sd-plugin/src/main/java/org/intellij/sdk/language/structure/SdStructureViewFactory.java +++ b/sd-plugin/src/main/java/org/intellij/sdk/language/structure/SdStructureViewFactory.java @@ -13,7 +13,7 @@ import org.jetbrains.annotations.Nullable; /** * This class is used for the extension (in plugin.xml) to the class SdStructureViewModel. It make the IDE use our * plugin's code when creating the "Structure View" window. - * @author shahariel + * @author Shahar Ariel */ public class SdStructureViewFactory implements PsiStructureViewFactory { diff --git a/sd-plugin/src/main/resources/META-INF/plugin.xml b/sd-plugin/src/main/resources/META-INF/plugin.xml index 118dbb16ad5..10a617fe3d4 100644 --- a/sd-plugin/src/main/resources/META-INF/plugin.xml +++ b/sd-plugin/src/main/resources/META-INF/plugin.xml @@ -2,10 +2,10 @@ <idea-plugin> <id>org.intellij.sdk.language</id> <name>SdReader</name> - <version>1.0.1</version> + <version>1.0.0</version> <!-- Text to display as company information on Preferences/Settings | Plugin page --> - <vendor>Vespa</vendor> + <vendor>Yahoo</vendor> <!-- Product and plugin compatibility requirements --> <depends>com.intellij.java</depends> diff --git a/sd-plugin/src/main/resources/icons/override_macro_icon.png b/sd-plugin/src/main/resources/icons/override_macro_icon.png Binary files differindex ae9e2636798..024eb777eef 100644 --- a/sd-plugin/src/main/resources/icons/override_macro_icon.png +++ b/sd-plugin/src/main/resources/icons/override_macro_icon.png |