diff --git a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/MultithreadSearcher.java b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/MultiThreadSearcher.java similarity index 93% rename from platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/MultithreadSearcher.java rename to platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/MultiThreadSearcher.java index 8162a509cb03..4b0aa490db46 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/MultithreadSearcher.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/MultiThreadSearcher.java @@ -25,22 +25,22 @@ import static com.intellij.ide.actions.searcheverywhere.SEResultsEqualityProvide /** * @author msokolov */ -class MultithreadSearcher implements SESearcher { +class MultiThreadSearcher implements SESearcher { - private static final Logger LOG = Logger.getInstance(MultithreadSearcher.class); + private static final Logger LOG = Logger.getInstance(MultiThreadSearcher.class); @NotNull private final Listener myListener; @NotNull private final Executor myNotificationExecutor; @NotNull private final SEResultsEqualityProvider myEqualityProvider; /** - * Creates MultithreadSearcher with search results {@link Listener} and specifies executor which going to be used to call listener methods. + * Creates MultiThreadSearcher with search results {@link Listener} and specifies executor which going to be used to call listener methods. * Use this constructor when you for example need to receive listener events only in AWT thread * @param listener {@link Listener} to get notifications about searching process * @param notificationExecutor searcher guarantees that all listener methods will be called only through this executor - * @param equalityProviders collection of equailty providers that checks if found elements is already in the search results + * @param equalityProviders collection of equality providers that checks if found elements are already in the search results */ - MultithreadSearcher(@NotNull Listener listener, + MultiThreadSearcher(@NotNull Listener listener, @NotNull Executor notificationExecutor, @NotNull Collection equalityProviders) { myListener = listener; @@ -48,17 +48,6 @@ class MultithreadSearcher implements SESearcher { myEqualityProvider = SEResultsEqualityProvider.composite(equalityProviders); } - /** - * Creates MultithreadSearcher with no guarantees about what thread gonna call {@code listener} methods. - * In this case listener will be called from different threads, so you have to care about thread safety - * @param listener {@link Listener} to get notifications about searching process - * @param equalityProviders collection of equailty providers that checks if found elements is already in the search results - */ - @SuppressWarnings("unused") - MultithreadSearcher(@NotNull Listener listener, @NotNull Collection equalityProviders) { - this(listener, Runnable::run, equalityProviders); - } - /** * Starts searching process with given search parameters * @param contributorsAndLimits map of used searching contributors and maximum elements limit for them @@ -68,9 +57,10 @@ class MultithreadSearcher implements SESearcher { * @return {@link ProgressIndicator} that could be used to track and/or cancel searching process */ @Override - public ProgressIndicator search(Map, Integer> contributorsAndLimits, String pattern, + public ProgressIndicator search(@NotNull Map, Integer> contributorsAndLimits, + @NotNull String pattern, boolean useNonProjectItems, - Function, SearchEverywhereContributorFilter> filterSupplier) { + @NotNull Function, SearchEverywhereContributorFilter> filterSupplier) { LOG.debug("Search started for pattern [", pattern, "]"); FullSearchResultsAccumulator accumulator = new FullSearchResultsAccumulator(contributorsAndLimits, myEqualityProvider, myListener, myNotificationExecutor); @@ -230,7 +220,7 @@ class MultithreadSearcher implements SESearcher { private static abstract class ResultsAccumulator { protected final Map, Collection> sections; - protected final MultithreadSearcher.Listener myListener; + protected final MultiThreadSearcher.Listener myListener; protected final Executor myNotificationExecutor; protected final SEResultsEqualityProvider myEqualityProvider; diff --git a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereUI.java b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereUI.java index 4409cd43e329..6e4e0ae9f5b9 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereUI.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereUI.java @@ -113,7 +113,7 @@ public class SearchEverywhereUI extends BigPopupUI implements DataProvider, Quic myBufferedListener = null; } else { myBufferedListener = new ThrottlingListenerWrapper(THROTTLING_TIMEOUT, mySearchListener, Runnable::run); - mySearcher = new MultithreadSearcher(myBufferedListener, run -> ApplicationManager.getApplication().invokeLater(run), equalityProviders); + mySearcher = new MultiThreadSearcher(myBufferedListener, run -> ApplicationManager.getApplication().invokeLater(run), equalityProviders); } myServiceContributors = serviceContributors; diff --git a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SingleThreadSearcher.java b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SingleThreadSearcher.java index a8aef208db41..6a52216036ec 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SingleThreadSearcher.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SingleThreadSearcher.java @@ -14,7 +14,7 @@ import java.util.stream.Collector; /** * Single thread implementation of {@link SESearcher}. - * Being used only as a temporary solution in case of problems with {@link MultithreadSearcher}. + * Being used only as a temporary solution in case of problems with {@link MultiThreadSearcher}. */ @Deprecated class SingleThreadSearcher implements SESearcher { diff --git a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/ThrottlingListenerWrapper.java b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/ThrottlingListenerWrapper.java index f62e426a5fc1..084ddb956184 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/ThrottlingListenerWrapper.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/ThrottlingListenerWrapper.java @@ -10,16 +10,16 @@ import java.util.concurrent.Executor; import java.util.function.BiConsumer; /** - * Implementation of {@link MultithreadSearcher.Listener} which decrease events rate and raise batch updates + * Implementation of {@link MultiThreadSearcher.Listener} which decrease events rate and raise batch updates * each {@code throttlingDelay} milliseconds. *
* Not thread-safe and should be notified only in EDT */ -class ThrottlingListenerWrapper implements MultithreadSearcher.Listener { +class ThrottlingListenerWrapper implements MultiThreadSearcher.Listener { public final int myThrottlingDelay; - private final MultithreadSearcher.Listener myDelegateListener; + private final MultiThreadSearcher.Listener myDelegateListener; private final Executor myDelegateExecutor; private final Buffer myBuffer = new Buffer(); @@ -28,7 +28,7 @@ class ThrottlingListenerWrapper implements MultithreadSearcher.Listener { private final Alarm flushAlarm = new Alarm(Alarm.ThreadToUse.SWING_THREAD); private boolean flushScheduled; - ThrottlingListenerWrapper(int throttlingDelay, MultithreadSearcher.Listener delegateListener, Executor delegateExecutor) { + ThrottlingListenerWrapper(int throttlingDelay, MultiThreadSearcher.Listener delegateListener, Executor delegateExecutor) { myThrottlingDelay = throttlingDelay; myDelegateListener = delegateListener; myDelegateExecutor = delegateExecutor; diff --git a/platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/MultithreadSearchDeadlockTest.java b/platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/MultiThreadSearchDeadlockTest.java similarity index 97% rename from platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/MultithreadSearchDeadlockTest.java rename to platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/MultiThreadSearchDeadlockTest.java index b692d4ef1d7b..d1271acf55b7 100644 --- a/platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/MultithreadSearchDeadlockTest.java +++ b/platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/MultiThreadSearchDeadlockTest.java @@ -22,7 +22,7 @@ import java.util.function.Function; /** * @author mikhail.sokolov */ -public class MultithreadSearchDeadlockTest extends LightPlatformCodeInsightFixtureTestCase { +public class MultiThreadSearchDeadlockTest extends LightPlatformCodeInsightFixtureTestCase { private static final Collection ourEqualityProviders = Collections.singleton(new TrivialElementsEqualityProvider()); @@ -44,7 +44,7 @@ public class MultithreadSearchDeadlockTest extends LightPlatformCodeInsightFixtu Collector collector = new Collector(); Alarm alarm = new Alarm(Alarm.ThreadToUse.POOLED_THREAD, getTestRootDisposable()); - MultithreadSearcher searcher = new MultithreadSearcher(collector, command -> alarm.addRequest(command, 0), ourEqualityProviders); + MultiThreadSearcher searcher = new MultiThreadSearcher(collector, command -> alarm.addRequest(command, 0), ourEqualityProviders); ProgressIndicator progressIndicator = searcher.search(contributorsMap, "tst", false, ignrd -> null); try { @@ -71,7 +71,7 @@ public class MultithreadSearchDeadlockTest extends LightPlatformCodeInsightFixtu Collector collector = new Collector(); Alarm alarm = new Alarm(Alarm.ThreadToUse.POOLED_THREAD, getTestRootDisposable()); - MultithreadSearcher searcher = new MultithreadSearcher(collector, command -> alarm.addRequest(command, 0), ourEqualityProviders); + MultiThreadSearcher searcher = new MultiThreadSearcher(collector, command -> alarm.addRequest(command, 0), ourEqualityProviders); ProgressIndicator progressIndicator = searcher.search(contributorsMap, "tst", false, ignrd -> null); try { @@ -103,7 +103,7 @@ public class MultithreadSearchDeadlockTest extends LightPlatformCodeInsightFixtu Collector collector = new Collector(); Alarm alarm = new Alarm(Alarm.ThreadToUse.POOLED_THREAD, getTestRootDisposable()); - MultithreadSearcher searcher = new MultithreadSearcher(collector, command -> alarm.addRequest(command, 0), ourEqualityProviders); + MultiThreadSearcher searcher = new MultiThreadSearcher(collector, command -> alarm.addRequest(command, 0), ourEqualityProviders); ProgressIndicator progressIndicator = searcher.search(contributorsMap, "tst", false, ignrd -> null); try { diff --git a/platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/MultithreadSearchTest.java b/platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/MultiThreadSearchTest.java similarity index 99% rename from platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/MultithreadSearchTest.java rename to platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/MultiThreadSearchTest.java index 23dec3c89226..977ce2e8a503 100644 --- a/platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/MultithreadSearchTest.java +++ b/platform/lang-impl/testSources/com/intellij/ide/actions/searcheverywhere/MultiThreadSearchTest.java @@ -22,7 +22,7 @@ import java.util.function.Function; /** * @author mikhail.sokolov */ -public class MultithreadSearchTest extends LightPlatformCodeInsightFixtureTestCase { +public class MultiThreadSearchTest extends LightPlatformCodeInsightFixtureTestCase { private static final String MORE_ITEM = "...MORE"; private static final Collection ourEqualityProviders = Collections.singleton(new TrivialElementsEqualityProvider()); @@ -31,7 +31,7 @@ public class MultithreadSearchTest extends LightPlatformCodeInsightFixtureTestCa Collection scenarios = createMultithreadScenarios(); SearchResultsCollector collector = new SearchResultsCollector(); Alarm alarm = new Alarm(Alarm.ThreadToUse.POOLED_THREAD, getTestRootDisposable()); - MultithreadSearcher searcher = new MultithreadSearcher(collector, command -> alarm.addRequest(command, 0), ourEqualityProviders); + MultiThreadSearcher searcher = new MultiThreadSearcher(collector, command -> alarm.addRequest(command, 0), ourEqualityProviders); scenarios.forEach(scenario -> { ProgressIndicator indicator = searcher.search(scenario.contributorsAndLimits, "tst", false, ignrd -> null); @@ -418,7 +418,7 @@ public class MultithreadSearchTest extends LightPlatformCodeInsightFixtureTestCa } } - private static class SearchResultsCollector implements MultithreadSearcher.Listener { + private static class SearchResultsCollector implements MultiThreadSearcher.Listener { private final Map> myMap = new ConcurrentHashMap<>(); private final AtomicBoolean myFinished = new AtomicBoolean(false);