IJPL-185131 Search Everywhere for RD: Open in Find tool window

- Implement `openInFindToolWindow` using providers from the `Providers` class

GitOrigin-RevId: 58f92b10618ed64b7804771ed3953b7caf9659f9
This commit is contained in:
Tatiana Elfimova
2025-06-17 22:51:32 +00:00
committed by intellij-monorepo-bot
parent f02d8cb0f5
commit c771e2a739
3 changed files with 14 additions and 3 deletions
@@ -24,7 +24,7 @@ class SeFrontendItemDataProvidersFacade(private val projectId: ProjectId,
private val dataContextId: DataContextId,
private val isAllTab: Boolean) {
private val providerIds: List<SeProviderId> = idsWithDisplayNames.keys.toList()
val providerIds: List<SeProviderId> = idsWithDisplayNames.keys.toList()
fun hasId(providerId: SeProviderId): Boolean = idsWithDisplayNames.containsKey(providerId)
@@ -81,6 +81,7 @@ class SeTabDelegate(
params: SeParams,
initEvent: AnActionEvent,
isAllTab: Boolean,
disabledProviders: List<SeProviderId>? = 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<SeProviderId>,
): List<SeProviderId> {
val localProviders = localProviders.filterKeys { !disabledProviders.contains(it) }.keys
val frontedProviders = frontendProvidersFacade?.providerIds?.filter { !disabledProviders.contains(it) }
?: emptyList()
return localProviders.toList() + frontedProviders
}
}
companion object {
@@ -68,7 +68,8 @@ class SeAllTab(private val delegate: SeTabDelegate) : SeTab {
}
override suspend fun openInFindToolWindow(sessionRef: DurableRef<SeSessionEntity>, 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() {