From 90dcaf2716e529748b251d2afb57a63db4ceee17 Mon Sep 17 00:00:00 2001 From: Aydar Mukhametzyanov Date: Fri, 5 Sep 2025 10:27:08 +0200 Subject: [PATCH] IJPL-200875 Try to use the old SearchListener and see if it will fix Search Everywhere degradation with AIA GitOrigin-RevId: 082c022f7c417f6da688be6551006e4a647cbcbf --- .../commands/SearchEverywhereCommand.java | 95 +++++++++++++------ 1 file changed, 66 insertions(+), 29 deletions(-) diff --git a/plugins/performanceTesting/core/src/com/jetbrains/performancePlugin/commands/SearchEverywhereCommand.java b/plugins/performanceTesting/core/src/com/jetbrains/performancePlugin/commands/SearchEverywhereCommand.java index ec4789d6c824..ca0daace16c1 100644 --- a/plugins/performanceTesting/core/src/com/jetbrains/performancePlugin/commands/SearchEverywhereCommand.java +++ b/plugins/performanceTesting/core/src/com/jetbrains/performancePlugin/commands/SearchEverywhereCommand.java @@ -338,14 +338,26 @@ public class SearchEverywhereCommand extends AbstractCommand { assert popupInstance != null; Span insertSpan = PerformanceTestSpan.getTracer(warmup).spanBuilder("searchEverywhere_items_loaded").startSpan(); Span firstBatchAddedSpan = PerformanceTestSpan.getTracer(warmup).spanBuilder("searchEverywhere_first_elements_added").startSpan(); - popupInstance.addSplitSearchListener(new SplitSearchAdapter() { - @Override - public void elementsAdded(@NotNull Map<@NotNull String, ?> uuidToElement) { - super.elementsAdded(uuidToElement); - firstBatchAddedSpan.setAttribute("number", uuidToElement.size()); - firstBatchAddedSpan.end(); - } - }); + if (popupInstance instanceof SearchEverywhereUI) { + popupInstance.addSearchListener(new SearchAdapter() { + @Override + public void elementsAdded(@NotNull List list) { + super.elementsAdded(list); + firstBatchAddedSpan.setAttribute("number", list.size()); + firstBatchAddedSpan.end(); + } + }); + } + else { + popupInstance.addSplitSearchListener(new SplitSearchAdapter() { + @Override + public void elementsAdded(@NotNull Map<@NotNull String, ?> uuidToElement) { + super.elementsAdded(uuidToElement); + firstBatchAddedSpan.setAttribute("number", uuidToElement.size()); + firstBatchAddedSpan.end(); + } + }); + } //noinspection TestOnlyProblems Future> elements = popupInstance.findElementsForPattern(insertText); ApplicationManager.getApplication().executeOnPooledThread(Context.current().wrap((Callable)() -> { @@ -368,29 +380,54 @@ public class SearchEverywhereCommand extends AbstractCommand { Ref isTypingFinished = new Ref<>(false); Ref oneLetterSpan = new Ref<>(); Ref firstBatchAddedSpan = new Ref<>(); - popupInstance.addSplitSearchListener(new SplitSearchAdapter() { - @Override - public void elementsAdded(@NotNull Map<@NotNull String, ?> uuidToElement) { - firstBatchAddedSpan.get().setAttribute("number", uuidToElement.size()); - firstBatchAddedSpan.get().end(); - } - - @Override - public void searchFinished(int count) { - super.searchFinished(count); - if (count < 0) return; - - oneLetterLock.release(); - if (!oneLetterSpan.isNull()) { - oneLetterSpan.get().setAttribute("number", count); - oneLetterSpan.get().end(); + if (popupInstance instanceof SearchEverywhereUI) { + popupInstance.addSearchListener(new SearchAdapter() { + @Override + public void elementsAdded(@NotNull List list) { + firstBatchAddedSpan.get().setAttribute("number", list.size()); + firstBatchAddedSpan.get().end(); } - if (isTypingFinished.get()) { - typingSemaphore.release(); - typing.shutdown(); + + @Override + public void searchFinished(@NotNull List items) { + super.searchFinished(items); + oneLetterLock.release(); + if (!oneLetterSpan.isNull()) { + oneLetterSpan.get().setAttribute("number", items.size()); + oneLetterSpan.get().end(); + } + if (isTypingFinished.get()) { + typingSemaphore.release(); + typing.shutdown(); + } } - } - }); + }); + } + else { + popupInstance.addSplitSearchListener(new SplitSearchAdapter() { + @Override + public void elementsAdded(@NotNull Map<@NotNull String, ?> uuidToElement) { + firstBatchAddedSpan.get().setAttribute("number", uuidToElement.size()); + firstBatchAddedSpan.get().end(); + } + + @Override + public void searchFinished(int count) { + super.searchFinished(count); + if (count < 0) return; + + oneLetterLock.release(); + if (!oneLetterSpan.isNull()) { + oneLetterSpan.get().setAttribute("number", count); + oneLetterSpan.get().end(); + } + if (isTypingFinished.get()) { + typingSemaphore.release(); + typing.shutdown(); + } + } + }); + } for (int i = 0; i < typingText.length(); i++) { final int index = i; typing.execute(Context.current().wrap(() -> {