From c771e2a7395a5717b80559da24fbae5751269c7b Mon Sep 17 00:00:00 2001 From: Tatiana Elfimova Date: Tue, 17 Jun 2025 12:45:14 +0200 Subject: [PATCH] IJPL-185131 Search Everywhere for RD: Open in Find tool window - Implement `openInFindToolWindow` using providers from the `Providers` class GitOrigin-RevId: 58f92b10618ed64b7804771ed3953b7caf9659f9 --- .../src/SeFrontendItemDataProvidersFacade.kt | 2 +- .../frontend/src/resultsProcessing/SeTabDelegate.kt | 12 +++++++++++- .../frontend/src/tabs/all/SeAllTab.kt | 3 ++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/platform/searchEverywhere/frontend/src/SeFrontendItemDataProvidersFacade.kt b/platform/searchEverywhere/frontend/src/SeFrontendItemDataProvidersFacade.kt index 19c9ebf6b95a..be2d358ed4cd 100644 --- a/platform/searchEverywhere/frontend/src/SeFrontendItemDataProvidersFacade.kt +++ b/platform/searchEverywhere/frontend/src/SeFrontendItemDataProvidersFacade.kt @@ -24,7 +24,7 @@ class SeFrontendItemDataProvidersFacade(private val projectId: ProjectId, private val dataContextId: DataContextId, private val isAllTab: Boolean) { - private val providerIds: List = idsWithDisplayNames.keys.toList() + val providerIds: List = idsWithDisplayNames.keys.toList() fun hasId(providerId: SeProviderId): Boolean = idsWithDisplayNames.containsKey(providerId) diff --git a/platform/searchEverywhere/frontend/src/resultsProcessing/SeTabDelegate.kt b/platform/searchEverywhere/frontend/src/resultsProcessing/SeTabDelegate.kt index ed7de188d298..c2cd2766950d 100644 --- a/platform/searchEverywhere/frontend/src/resultsProcessing/SeTabDelegate.kt +++ b/platform/searchEverywhere/frontend/src/resultsProcessing/SeTabDelegate.kt @@ -81,6 +81,7 @@ class SeTabDelegate( params: SeParams, initEvent: AnActionEvent, isAllTab: Boolean, + disabledProviders: List? = null ): Boolean { if (project == null) return false @@ -90,7 +91,7 @@ class SeTabDelegate( return SeRemoteApi.getInstance().openInFindToolWindow(project.projectId(), sessionRef, dataContextId, - providerIds, + providers.getValue().getProviderIds(disabledProviders ?: emptyList()), params, isAllTab) } @@ -163,6 +164,15 @@ class SeTabDelegate( frontendProvidersFacade?.itemSelected(itemData, modifiers, searchText) ?: false } } + + fun getProviderIds( + disabledProviders: List, + ): List { + val localProviders = localProviders.filterKeys { !disabledProviders.contains(it) }.keys + val frontedProviders = frontendProvidersFacade?.providerIds?.filter { !disabledProviders.contains(it) } + ?: emptyList() + return localProviders.toList() + frontedProviders + } } companion object { diff --git a/platform/searchEverywhere/frontend/src/tabs/all/SeAllTab.kt b/platform/searchEverywhere/frontend/src/tabs/all/SeAllTab.kt index 7e6a3b7a2d37..d649f9df704f 100644 --- a/platform/searchEverywhere/frontend/src/tabs/all/SeAllTab.kt +++ b/platform/searchEverywhere/frontend/src/tabs/all/SeAllTab.kt @@ -68,7 +68,8 @@ class SeAllTab(private val delegate: SeTabDelegate) : SeTab { } override suspend fun openInFindToolWindow(sessionRef: DurableRef, params: SeParams, initEvent: AnActionEvent): Boolean { - return delegate.openInFindToolWindow(sessionRef, params, initEvent, true) + val allTabFilter = SeEverywhereFilter.from(params.filter) + return delegate.openInFindToolWindow(sessionRef, params, initEvent, true,allTabFilter.disabledProviderIds) } override fun dispose() {