mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJPL-200875 Try to use the old SearchListener and see if it will fix Search Everywhere degradation with AIA
GitOrigin-RevId: 082c022f7c417f6da688be6551006e4a647cbcbf
This commit is contained in:
committed by
intellij-monorepo-bot
parent
fde435d0b0
commit
90dcaf2716
+66
-29
@@ -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<? extends SearchEverywhereFoundElementInfo> 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<List<Object>> elements = popupInstance.findElementsForPattern(insertText);
|
||||
ApplicationManager.getApplication().executeOnPooledThread(Context.current().wrap((Callable<Object>)() -> {
|
||||
@@ -368,29 +380,54 @@ public class SearchEverywhereCommand extends AbstractCommand {
|
||||
Ref<Boolean> isTypingFinished = new Ref<>(false);
|
||||
Ref<Span> oneLetterSpan = new Ref<>();
|
||||
Ref<Span> 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<? extends SearchEverywhereFoundElementInfo> list) {
|
||||
firstBatchAddedSpan.get().setAttribute("number", list.size());
|
||||
firstBatchAddedSpan.get().end();
|
||||
}
|
||||
if (isTypingFinished.get()) {
|
||||
typingSemaphore.release();
|
||||
typing.shutdown();
|
||||
|
||||
@Override
|
||||
public void searchFinished(@NotNull List<Object> 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(() -> {
|
||||
|
||||
Reference in New Issue
Block a user