diff --git a/java/java-impl/src/com/intellij/find/findUsages/CustomJavaFindUsagesHandler.java b/java/java-impl/src/com/intellij/find/findUsages/CustomJavaFindUsagesHandler.java new file mode 100644 index 000000000000..d8fe4c7ca09c --- /dev/null +++ b/java/java-impl/src/com/intellij/find/findUsages/CustomJavaFindUsagesHandler.java @@ -0,0 +1,14 @@ +package com.intellij.find.findUsages; + +import com.intellij.psi.PsiElement; +import com.intellij.usageView.UsageInfo; +import com.intellij.util.Processor; +import org.jetbrains.annotations.NotNull; + +/** + * User: Andrey.Vokin + * Date: 7/26/12 + */ +public interface CustomJavaFindUsagesHandler { + public void processElementUsages(@NotNull final PsiElement element, @NotNull final Processor processor, @NotNull final FindUsagesOptions options); +} diff --git a/java/java-impl/src/com/intellij/find/findUsages/CustomJavaFindUsagesHandlerProvider.java b/java/java-impl/src/com/intellij/find/findUsages/CustomJavaFindUsagesHandlerProvider.java new file mode 100644 index 000000000000..368c8aed3904 --- /dev/null +++ b/java/java-impl/src/com/intellij/find/findUsages/CustomJavaFindUsagesHandlerProvider.java @@ -0,0 +1,13 @@ +package com.intellij.find.findUsages; + +import com.intellij.openapi.extensions.ExtensionPointName; + +/** + * User: Andrey.Vokin + * Date: 7/26/12 + */ +public abstract class CustomJavaFindUsagesHandlerProvider { + public static final ExtensionPointName EP_NAME = ExtensionPointName.create("com.intellij.findUsages.java.customJavaFindUsagesHandlerProvider"); + + public abstract CustomJavaFindUsagesHandler getHandler(); +} diff --git a/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandler.java b/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandler.java index 3059580b3f2a..ac0f39f31054 100644 --- a/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandler.java +++ b/java/java-impl/src/com/intellij/find/findUsages/JavaFindUsagesHandler.java @@ -384,6 +384,11 @@ public class JavaFindUsagesHandler extends FindUsagesHandler{ // todo add to fastTrack processUsagesInText(element, processor, (GlobalSearchScope)options.searchScope); } + + final CustomJavaFindUsagesHandlerProvider[] customJavaFindUsagesHandlerProviders = Extensions.getExtensions(CustomJavaFindUsagesHandlerProvider.EP_NAME); + for (CustomJavaFindUsagesHandlerProvider provider : customJavaFindUsagesHandlerProviders) { + provider.getHandler().processElementUsages(element, processor, options); + } } private static void addAliasingUsages(PomTarget pomTarget, final Processor processor, final FindUsagesOptions options) {