diff --git a/platform/searchEverywhere/backend/src/impl/SeBackendService.kt b/platform/searchEverywhere/backend/src/impl/SeBackendService.kt index 56916550d3ab..e938c8bd66fc 100644 --- a/platform/searchEverywhere/backend/src/impl/SeBackendService.kt +++ b/platform/searchEverywhere/backend/src/impl/SeBackendService.kt @@ -19,7 +19,6 @@ import com.intellij.platform.searchEverywhere.providers.SeProvidersHolder import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation import com.intellij.platform.searchEverywhere.utils.SeResultsCountBalancer import com.jetbrains.rhizomedb.EID -import fleet.kernel.DurableRef import fleet.kernel.onDispose import fleet.kernel.rete.Rete import kotlinx.coroutines.* @@ -40,14 +39,14 @@ class SeBackendService(val project: Project, private val coroutineScope: Corouti @OptIn(ExperimentalCoroutinesApi::class) suspend fun getItems( - sessionRef: DurableRef, + session: SeSession, providerIds: List, isAllTab: Boolean, params: SeParams, dataContextId: DataContextId?, requestedCountChannel: ReceiveChannel, ): Flow { - val providerHolder = getProvidersHolder(sessionRef, dataContextId) ?: return emptyFlow() + val providerHolder = getProvidersHolder(session, dataContextId) ?: return emptyFlow() val requestedCountState = MutableStateFlow(0) val receivingJob = coroutineScope.launch { @@ -98,10 +97,10 @@ class SeBackendService(val project: Project, private val coroutineScope: Corouti } suspend fun getAvailableProviderIds( - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId ) : Map> { - val providersHolder = getProvidersHolder(sessionRef, dataContextId) ?: return emptyMap() + val providersHolder = getProvidersHolder(session, dataContextId) ?: return emptyMap() return providersHolder.splitToEssentialAndNonEssential( SeItemsProviderFactory.EP_NAME.extensionList.map { it.id.toProviderId() } ) @@ -114,12 +113,12 @@ class SeBackendService(val project: Project, private val coroutineScope: Corouti } private suspend fun getProvidersHolder( - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId?, ): SeProvidersHolder? = mutex.withLock { - val session = sessionRef.derefOrNull() ?: return@withLock null - sessionIdToProviderHolders[session.eid]?.let { return@withLock it } + val sessionEntity = session.asRef().derefOrNull() ?: return@withLock null + sessionIdToProviderHolders[sessionEntity.eid]?.let { return@withLock it } if (dataContextId == null) { SeLog.error("Cannot create providers on the backend: no serialized data context") @@ -134,31 +133,31 @@ class SeBackendService(val project: Project, private val coroutineScope: Corouti } val actionEvent = AnActionEvent.createEvent(dataContext, null, "", ActionUiKind.NONE, null) - val providersHolder = SeProvidersHolder.initialize(actionEvent, project, sessionRef, "Backend") - sessionIdToProviderHolders[session.eid] = providersHolder + val providersHolder = SeProvidersHolder.initialize(actionEvent, project, session, "Backend") + sessionIdToProviderHolders[sessionEntity.eid] = providersHolder - session.onDispose(coroutineScope.coroutineContext[Rete]!!) { + sessionEntity.onDispose(coroutineScope.coroutineContext[Rete]!!) { Disposer.dispose(providersHolder) - sessionIdToProviderHolders.remove(session.eid) + sessionIdToProviderHolders.remove(sessionEntity.eid) } return@withLock providersHolder } - suspend fun itemSelected(sessionRef: DurableRef, itemData: SeItemData, modifiers: Int, searchText: String, isAllTab: Boolean): Boolean { - val provider = getProvidersHolder(sessionRef, null)?.get(itemData.providerId, isAllTab) ?: return false + suspend fun itemSelected(session: SeSession, itemData: SeItemData, modifiers: Int, searchText: String, isAllTab: Boolean): Boolean { + val provider = getProvidersHolder(session, null)?.get(itemData.providerId, isAllTab) ?: return false return provider.itemSelected(itemData, modifiers, searchText) } suspend fun getSearchScopesInfoForProviders( - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerIds: List, isAllTab: Boolean, ): Map { return providerIds.mapNotNull { providerId -> - val provider = getProvidersHolder(sessionRef, dataContextId)?.get(providerId, isAllTab) + val provider = getProvidersHolder(session, dataContextId)?.get(providerId, isAllTab) provider?.getSearchScopesInfo()?.let { providerId to it } @@ -167,23 +166,23 @@ class SeBackendService(val project: Project, private val coroutineScope: Corouti suspend fun getTypeVisibilityStatesForProviders( index: Int, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerIds: List, isAllTab: Boolean, ): List { return providerIds.mapNotNull { providerId -> - val provider = getProvidersHolder(sessionRef, dataContextId)?.get(providerId, isAllTab) + val provider = getProvidersHolder(session, dataContextId)?.get(providerId, isAllTab) provider?.getTypeVisibilityStates(index) }.flatten() } suspend fun getDisplayNameForProvider( - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerIds: List, ): Map { - val providersHolder = getProvidersHolder(sessionRef, dataContextId) ?: return emptyMap() + val providersHolder = getProvidersHolder(session, dataContextId) ?: return emptyMap() return providerIds.mapNotNull { id -> providersHolder.get(id, true)?.displayName?.let { displayName -> id to displayName @@ -192,34 +191,34 @@ class SeBackendService(val project: Project, private val coroutineScope: Corouti } suspend fun canBeShownInFindResults( - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerIds: List, isAllTab: Boolean, ): Boolean { return providerIds.any { providerId -> - val provider = getProvidersHolder(sessionRef, dataContextId)?.get(providerId, isAllTab) + val provider = getProvidersHolder(session, dataContextId)?.get(providerId, isAllTab) provider?.canBeShownInFindResults() ?: false } } suspend fun isShownInSeparateTab( - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerId: SeProviderId, ): Boolean { - return getProvidersHolder(sessionRef, dataContextId)?.getLegacyContributor(providerId, false)?.isShownInSeparateTab ?: false + return getProvidersHolder(session, dataContextId)?.getLegacyContributor(providerId, false)?.isShownInSeparateTab ?: false } suspend fun openInFindToolWindow( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId?, providerIds: List, params: SeParams, isAllTab: Boolean, ): Boolean { - val providersHolder = getProvidersHolder(sessionRef, dataContextId) + val providersHolder = getProvidersHolder(session, dataContextId) if (providersHolder == null) return false SeFindToolWindowManager(project).openInFindToolWindow( @@ -232,8 +231,8 @@ class SeBackendService(val project: Project, private val coroutineScope: Corouti return item.fetchItemIfExists()?.presentation() } - suspend fun performExtendedAction(sessionRef: DurableRef, itemData: SeItemData, isAllTab: Boolean): Boolean { - val provider = getProvidersHolder(sessionRef, null)?.get(itemData.providerId, isAllTab) ?: return false + suspend fun performExtendedAction(session: SeSession, itemData: SeItemData, isAllTab: Boolean): Boolean { + val provider = getProvidersHolder(session, null)?.get(itemData.providerId, isAllTab) ?: return false return provider.performExtendedAction(itemData) } diff --git a/platform/searchEverywhere/backend/src/impl/SeRemoteApiImpl.kt b/platform/searchEverywhere/backend/src/impl/SeRemoteApiImpl.kt index f0ccf78bdc9a..7fd07601b9b8 100644 --- a/platform/searchEverywhere/backend/src/impl/SeRemoteApiImpl.kt +++ b/platform/searchEverywhere/backend/src/impl/SeRemoteApiImpl.kt @@ -8,7 +8,6 @@ import com.intellij.platform.scopes.SearchScopesInfo import com.intellij.platform.searchEverywhere.* import com.intellij.platform.searchEverywhere.impl.SeRemoteApi import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation -import fleet.kernel.DurableRef import kotlinx.coroutines.channels.ReceiveChannel import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.emptyFlow @@ -18,29 +17,29 @@ import org.jetbrains.annotations.Nls @ApiStatus.Internal class SeRemoteApiImpl: SeRemoteApi { override suspend fun itemSelected(projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, itemData: SeItemData, modifiers: Int, searchText: String, isAllTab: Boolean): Boolean { val project = projectId.findProjectOrNull() ?: return false - return SeBackendService.getInstance(project).itemSelected(sessionRef, itemData, modifiers, searchText, isAllTab) + return SeBackendService.getInstance(project).itemSelected(session, itemData, modifiers, searchText, isAllTab) } override suspend fun canBeShownInFindResults( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerIds: List, isAllTab: Boolean, ): Boolean { val project = projectId.findProjectOrNull() ?: return false - return SeBackendService.getInstance(project).canBeShownInFindResults(sessionRef, dataContextId, providerIds, isAllTab) + return SeBackendService.getInstance(project).canBeShownInFindResults(session, dataContextId, providerIds, isAllTab) } override suspend fun openInFindToolWindow( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId?, providerIds: List, params: SeParams, @@ -48,17 +47,17 @@ class SeRemoteApiImpl: SeRemoteApi { ): Boolean { val project = projectId.findProjectOrNull() ?: return false return SeBackendService.getInstance(project) - .openInFindToolWindow(projectId, sessionRef, dataContextId, providerIds, params, isAllTab) + .openInFindToolWindow(projectId, session, dataContextId, providerIds, params, isAllTab) } - override suspend fun isShownInSeparateTab(projectId: ProjectId, sessionRef: DurableRef, dataContextId: DataContextId, providerId: SeProviderId): Boolean { + override suspend fun isShownInSeparateTab(projectId: ProjectId, session: SeSession, dataContextId: DataContextId, providerId: SeProviderId): Boolean { val project = projectId.findProjectOrNull() ?: return false - return SeBackendService.getInstance(project).isShownInSeparateTab(sessionRef, dataContextId, providerId) + return SeBackendService.getInstance(project).isShownInSeparateTab(session, dataContextId, providerId) } override suspend fun getItems( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, providerIds: List, isAllTab: Boolean, params: SeParams, @@ -67,49 +66,49 @@ class SeRemoteApiImpl: SeRemoteApi { ): Flow { val project = projectId.findProjectOrNull() ?: return emptyFlow() return SeBackendService.getInstance(project) - .getItems(sessionRef, providerIds, isAllTab, params, dataContextId, requestedCountChannel) + .getItems(session, providerIds, isAllTab, params, dataContextId, requestedCountChannel) } override suspend fun getAvailableProviderIds( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId ) : Map> { val project = projectId.findProjectOrNull() ?: return emptyMap() - return SeBackendService.getInstance(project).getAvailableProviderIds(sessionRef, dataContextId) + return SeBackendService.getInstance(project).getAvailableProviderIds(session, dataContextId) } override suspend fun getSearchScopesInfoForProviders( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerIds: List, isAllTab: Boolean, ): Map { val project = projectId.findProjectOrNull() ?: return emptyMap() - return SeBackendService.getInstance(project).getSearchScopesInfoForProviders(sessionRef, dataContextId, providerIds, isAllTab) + return SeBackendService.getInstance(project).getSearchScopesInfoForProviders(session, dataContextId, providerIds, isAllTab) } override suspend fun getTypeVisibilityStatesForProviders( index: Int, projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerIds: List, isAllTab: Boolean, ): List { val project = projectId.findProjectOrNull() ?: return emptyList() - return SeBackendService.getInstance(project).getTypeVisibilityStatesForProviders(index, sessionRef, dataContextId, providerIds, isAllTab) + return SeBackendService.getInstance(project).getTypeVisibilityStatesForProviders(index, session, dataContextId, providerIds, isAllTab) } override suspend fun getDisplayNameForProviders( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerIds: List, ): Map { val project = projectId.findProjectOrNull() ?: return emptyMap() - return SeBackendService.getInstance(project).getDisplayNameForProvider(sessionRef, dataContextId, providerIds) + return SeBackendService.getInstance(project).getDisplayNameForProvider(session, dataContextId, providerIds) } override suspend fun getUpdatedPresentation(projectId: ProjectId, item: SeItemData): SeItemPresentation? { @@ -119,11 +118,11 @@ class SeRemoteApiImpl: SeRemoteApi { override suspend fun performExtendedAction( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, itemData: SeItemData, isAllTab: Boolean, ): Boolean { val project = projectId.findProjectOrNull() ?: return false - return SeBackendService.getInstance(project).performExtendedAction(sessionRef, itemData, isAllTab) + return SeBackendService.getInstance(project).performExtendedAction(session, itemData, isAllTab) } } diff --git a/platform/searchEverywhere/frontend/src/SeFrontendItemDataProvidersFacade.kt b/platform/searchEverywhere/frontend/src/SeFrontendItemDataProvidersFacade.kt index 8821e3163607..5dbc49a40054 100644 --- a/platform/searchEverywhere/frontend/src/SeFrontendItemDataProvidersFacade.kt +++ b/platform/searchEverywhere/frontend/src/SeFrontendItemDataProvidersFacade.kt @@ -9,7 +9,6 @@ import com.intellij.platform.searchEverywhere.impl.SeRemoteApi import com.intellij.platform.searchEverywhere.providers.SeLog import com.intellij.platform.searchEverywhere.providers.SeLog.ITEM_EMIT import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation -import fleet.kernel.DurableRef import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.flow.Flow @@ -21,7 +20,7 @@ import org.jetbrains.annotations.Nls @Internal class SeFrontendItemDataProvidersFacade(private val projectId: ProjectId, val idsWithDisplayNames: Map, - private val sessionRef: DurableRef, + private val session: SeSession, private val dataContextId: DataContextId, private val isAllTab: Boolean, val essentialProviderIds: Set) { @@ -39,7 +38,7 @@ class SeFrontendItemDataProvidersFacade(private val projectId: ProjectId, channel.send(DEFAULT_CHUNK_SIZE) var pendingCount = DEFAULT_CHUNK_SIZE - SeRemoteApi.getInstance().getItems(projectId, sessionRef, ids, isAllTab, params, dataContextId, channel).collect { transferEvent -> + SeRemoteApi.getInstance().getItems(projectId, session, ids, isAllTab, params, dataContextId, channel).collect { transferEvent -> pendingCount-- if (pendingCount == 0) { pendingCount += DEFAULT_CHUNK_SIZE @@ -66,7 +65,7 @@ class SeFrontendItemDataProvidersFacade(private val projectId: ProjectId, modifiers: Int, searchText: String, ): Boolean { - return SeRemoteApi.getInstance().itemSelected(projectId, sessionRef, itemData, modifiers, searchText, isAllTab = isAllTab) + return SeRemoteApi.getInstance().itemSelected(projectId, session, itemData, modifiers, searchText, isAllTab = isAllTab) } suspend fun getUpdatedPresentation(item: SeItemData): SeItemPresentation? = @@ -74,22 +73,22 @@ class SeFrontendItemDataProvidersFacade(private val projectId: ProjectId, suspend fun getSearchScopesInfos(): Map = SeRemoteApi.getInstance().getSearchScopesInfoForProviders( - projectId, providerIds = providerIds, sessionRef = sessionRef, dataContextId = dataContextId, isAllTab = isAllTab + projectId, providerIds = providerIds, session = session, dataContextId = dataContextId, isAllTab = isAllTab ) suspend fun getTypeVisibilityStates(index: Int): List = SeRemoteApi.getInstance().getTypeVisibilityStatesForProviders( - index = index, projectId = projectId, providerIds = providerIds, sessionRef = sessionRef, dataContextId = dataContextId, isAllTab = isAllTab + index = index, projectId = projectId, providerIds = providerIds, session = session, dataContextId = dataContextId, isAllTab = isAllTab ) suspend fun canBeShownInFindResults(): Boolean { return SeRemoteApi.getInstance().canBeShownInFindResults( - projectId, providerIds = providerIds, sessionRef = sessionRef, dataContextId = dataContextId, isAllTab = isAllTab + projectId, providerIds = providerIds, session = session, dataContextId = dataContextId, isAllTab = isAllTab ) } suspend fun performExtendedAction(itemData: SeItemData): Boolean { - return SeRemoteApi.getInstance().performExtendedAction(projectId, sessionRef, itemData, isAllTab) + return SeRemoteApi.getInstance().performExtendedAction(projectId, session, itemData, isAllTab) } companion object { diff --git a/platform/searchEverywhere/frontend/src/SeFrontendService.kt b/platform/searchEverywhere/frontend/src/SeFrontendService.kt index ec64341948af..941e06cbeb85 100644 --- a/platform/searchEverywhere/frontend/src/SeFrontendService.kt +++ b/platform/searchEverywhere/frontend/src/SeFrontendService.kt @@ -14,7 +14,9 @@ import com.intellij.openapi.ui.popup.JBPopupFactory import com.intellij.openapi.util.Disposer import com.intellij.openapi.util.WindowStateService import com.intellij.openapi.wm.WindowManager +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.asRef import com.intellij.platform.searchEverywhere.frontend.tabs.actions.SeActionsTab import com.intellij.platform.searchEverywhere.frontend.tabs.all.SeAllTab import com.intellij.platform.searchEverywhere.frontend.tabs.classes.SeClassesTab @@ -37,7 +39,6 @@ import com.intellij.ui.popup.AbstractPopup import com.intellij.util.ui.EDT import com.intellij.util.ui.StartupUiUtil import com.intellij.util.ui.UIUtil -import fleet.kernel.DurableRef import fleet.kernel.change import fleet.kernel.shared import kotlinx.coroutines.* @@ -80,12 +81,12 @@ class SeFrontendService(val project: Project?, private val coroutineScope: Corou coroutineScope.launch { val popupScope = coroutineScope.childScope("SearchEverywhereFrontendService popup scope") - val sessionRef = SeSessionEntity.createRef() + val session = SeSessionEntity.createSession() try { popupSemaphore.withPermit { - localProvidersHolder = SeProvidersHolder.initialize(initEvent, project, sessionRef, "Frontend") - val completable = doShowPopup(popupFuture, tabId, searchText, initEvent, popupScope, sessionRef) + localProvidersHolder = SeProvidersHolder.initialize(initEvent, project, session, "Frontend") + val completable = doShowPopup(popupFuture, tabId, searchText, initEvent, popupScope, session) completable.await() } } @@ -99,7 +100,7 @@ class SeFrontendService(val project: Project?, private val coroutineScope: Corou if (removeSessionRef.get()) { change { shared { - sessionRef.derefOrNull()?.delete() + session.asRef().derefOrNull()?.delete() } } } @@ -114,7 +115,7 @@ class SeFrontendService(val project: Project?, private val coroutineScope: Corou searchText: String?, initEvent: AnActionEvent, popupScope: CoroutineScope, - sessionRef: DurableRef, + session: SeSession, ): CompletableDeferred { val startTime = System.currentTimeMillis() val tabInitializationTimoutMillis: Long = 50 @@ -125,7 +126,7 @@ class SeFrontendService(val project: Project?, private val coroutineScope: Corou val tabsOrDeferredTabs = tabFactories.map { it.id to initAsync(popupScope) { computeCatchingOrNull({ e -> "Error while getting tab from ${it.id} tab factory: ${e.message}" }) { - it.getTab(popupScope, project, sessionRef, initEvent) { action -> + it.getTab(popupScope, project, session, initEvent) { action -> popupInstance?.registerShortcut?.invoke(action) } } @@ -157,7 +158,7 @@ class SeFrontendService(val project: Project?, private val coroutineScope: Corou val deferredTabs = tabsOrDeferredTabs.filterIsInstance>() var popup: JBPopup? = null - val popupVm = SePopupVm(popupScope, project, sessionRef, tabs, deferredTabs, searchText, tabId, historyList) { + val popupVm = SePopupVm(popupScope, project, tabs, deferredTabs, searchText, tabId, historyList) { popup?.cancel() popup = null } @@ -180,11 +181,11 @@ class SeFrontendService(val project: Project?, private val coroutineScope: Corou popupScope.launch(NonCancellable) { removeSessionRef.set(false) try { - popupVm.openInFindWindow(sessionRef, initEvent) + popupVm.openInFindWindow(session, initEvent) } finally { change { shared { - sessionRef.derefOrNull()?.delete() + session.asRef().derefOrNull()?.delete() } } } diff --git a/platform/searchEverywhere/frontend/src/SeTab.kt b/platform/searchEverywhere/frontend/src/SeTab.kt index a13e3a3cb8e5..2d66571b65b8 100644 --- a/platform/searchEverywhere/frontend/src/SeTab.kt +++ b/platform/searchEverywhere/frontend/src/SeTab.kt @@ -5,7 +5,6 @@ import com.intellij.openapi.Disposable import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.DataContext import com.intellij.platform.searchEverywhere.* -import fleet.kernel.DurableRef import kotlinx.coroutines.flow.Flow import org.jetbrains.annotations.ApiStatus import org.jetbrains.annotations.Nls @@ -35,7 +34,7 @@ interface SeTab : Disposable { suspend fun canBeShownInFindResults(): Boolean - suspend fun openInFindToolWindow(sessionRef: DurableRef, params: SeParams, initEvent: AnActionEvent): Boolean = false + suspend fun openInFindToolWindow(session: SeSession, params: SeParams, initEvent: AnActionEvent): Boolean = false /** * @return true if the popup should be closed, false otherwise diff --git a/platform/searchEverywhere/frontend/src/SeTabFactory.kt b/platform/searchEverywhere/frontend/src/SeTabFactory.kt index 52b958a48b74..e2f24b80f3e6 100644 --- a/platform/searchEverywhere/frontend/src/SeTabFactory.kt +++ b/platform/searchEverywhere/frontend/src/SeTabFactory.kt @@ -5,8 +5,7 @@ import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.openapi.project.Project -import com.intellij.platform.searchEverywhere.SeSessionEntity -import fleet.kernel.DurableRef +import com.intellij.platform.searchEverywhere.SeSession import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus @@ -14,7 +13,7 @@ import org.jetbrains.annotations.ApiStatus @ApiStatus.Internal interface SeTabFactory { val id: String - suspend fun getTab(scope: CoroutineScope, project: Project?, sessionRef: DurableRef, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? = null + suspend fun getTab(scope: CoroutineScope, project: Project?, session: SeSession, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? = null companion object { @ApiStatus.Internal diff --git a/platform/searchEverywhere/frontend/src/resultsProcessing/SeTabDelegate.kt b/platform/searchEverywhere/frontend/src/resultsProcessing/SeTabDelegate.kt index 814368e31043..6e7242452c3d 100644 --- a/platform/searchEverywhere/frontend/src/resultsProcessing/SeTabDelegate.kt +++ b/platform/searchEverywhere/frontend/src/resultsProcessing/SeTabDelegate.kt @@ -21,7 +21,6 @@ import com.intellij.platform.searchEverywhere.providers.SeLog.ITEM_EMIT import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation import com.intellij.platform.searchEverywhere.utils.SeResultsCountBalancer import com.intellij.platform.searchEverywhere.utils.initAsync -import fleet.kernel.DurableRef import kotlinx.coroutines.* import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.flow.* @@ -32,14 +31,14 @@ import org.jetbrains.annotations.Nls @Internal class SeTabDelegate( val project: Project?, - private val sessionRef: DurableRef, + private val session: SeSession, private val logLabel: String, private val providerIds: List, private val initEvent: AnActionEvent, val scope: CoroutineScope, ) : Disposable { private val providers = initAsync(scope) { - initializeProviders(project, providerIds, initEvent, sessionRef, logLabel) + initializeProviders(project, providerIds, initEvent, session, logLabel) } suspend fun getProvidersIdToName(): Map = providers.getValue().getProvidersIdToName() @@ -124,7 +123,7 @@ class SeTabDelegate( } suspend fun openInFindToolWindow( - sessionRef: DurableRef, + session: SeSession, params: SeParams, initEvent: AnActionEvent, isAllTab: Boolean, @@ -136,7 +135,7 @@ class SeTabDelegate( initEvent.dataContext.rpcId() } return SeRemoteApi.getInstance().openInFindToolWindow(project.projectId(), - sessionRef, + session, dataContextId, providers.getValue().getProviderIds(disabledProviders ?: emptyList()), params, @@ -270,20 +269,20 @@ class SeTabDelegate( project: Project, providerId: SeProviderId, initEvent: AnActionEvent, - sessionRef: DurableRef, + session: SeSession, ): Boolean { val dataContextId = readAction { initEvent.dataContext.rpcId() } return SeFrontendService.getInstance(project).localProvidersHolder?.getLegacyContributor(providerId, false)?.isShownInSeparateTab == true || - SeRemoteApi.getInstance().isShownInSeparateTab(project.projectId(), sessionRef, dataContextId, providerId) + SeRemoteApi.getInstance().isShownInSeparateTab(project.projectId(), session, dataContextId, providerId) } private suspend fun initializeProviders( project: Project?, providerIds: List, initEvent: AnActionEvent, - sessionRef: DurableRef, + session: SeSession, logLabel: String, ): Providers { val projectId = project?.projectId() @@ -296,7 +295,7 @@ class SeTabDelegate( val localFactories = SeItemsProviderFactory.EP_NAME.extensionList.associateBy { SeProviderId(it.id) } val frontendOnlyIds = localFactories.filter { it.value is SeFrontendOnlyItemsProviderFactory }.map { it.key }.toSet() - val availableRemoteProviders = if (projectId != null) SeRemoteApi.getInstance().getAvailableProviderIds(projectId, sessionRef, dataContextId) else emptyMap() + val availableRemoteProviders = if (projectId != null) SeRemoteApi.getInstance().getAvailableProviderIds(projectId, session, dataContextId) else emptyMap() val essentialRemoteProviderIds = availableRemoteProviders[SeProviderIdUtils.ESSENTIAL_KEY]?.filter { !frontendOnlyIds.contains(it) @@ -325,12 +324,12 @@ class SeTabDelegate( val frontendProvidersFacade = if (project != null) { val remoteProviderIdToName = - SeRemoteApi.getInstance().getDisplayNameForProviders(project.projectId(), sessionRef, dataContextId, remoteProviderIds.toList()) + SeRemoteApi.getInstance().getDisplayNameForProviders(project.projectId(), session, dataContextId, remoteProviderIds.toList()) if (remoteProviderIdToName.isEmpty()) null else SeFrontendItemDataProvidersFacade(project.projectId(), remoteProviderIdToName, - sessionRef, + session, dataContextId, hasWildcard, essentialRemoteProviderIds.filter { remoteProviderIdToName.containsKey(it) }.toSet()) diff --git a/platform/searchEverywhere/frontend/src/tabs/actions/SeActionsTabFactory.kt b/platform/searchEverywhere/frontend/src/tabs/actions/SeActionsTabFactory.kt index 3582922d8221..e21acb413940 100644 --- a/platform/searchEverywhere/frontend/src/tabs/actions/SeActionsTabFactory.kt +++ b/platform/searchEverywhere/frontend/src/tabs/actions/SeActionsTabFactory.kt @@ -6,11 +6,10 @@ import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.project.Project import com.intellij.platform.searchEverywhere.SeProviderId import com.intellij.platform.searchEverywhere.SeProviderIdUtils -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.frontend.SeTabFactory import com.intellij.platform.searchEverywhere.frontend.resultsProcessing.SeTabDelegate -import fleet.kernel.DurableRef import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus.Internal @@ -18,9 +17,9 @@ import org.jetbrains.annotations.ApiStatus.Internal class SeActionsTabFactory : SeTabFactory { override val id: String get() = SeActionsTab.ID - override suspend fun getTab(scope: CoroutineScope, project: Project?, sessionRef: DurableRef, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { + override suspend fun getTab(scope: CoroutineScope, project: Project?, session: SeSession, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { val delegate = SeTabDelegate(project, - sessionRef, + session, "Actions", listOf(SeProviderId(SeProviderIdUtils.ACTIONS_ID)), initEvent, diff --git a/platform/searchEverywhere/frontend/src/tabs/all/SeAllTab.kt b/platform/searchEverywhere/frontend/src/tabs/all/SeAllTab.kt index dbbe2231374d..320105bf62eb 100644 --- a/platform/searchEverywhere/frontend/src/tabs/all/SeAllTab.kt +++ b/platform/searchEverywhere/frontend/src/tabs/all/SeAllTab.kt @@ -19,7 +19,6 @@ import com.intellij.platform.searchEverywhere.providers.SeEverywhereFilter import com.intellij.platform.searchEverywhere.utils.SuspendLazyProperty import com.intellij.platform.searchEverywhere.utils.initAsync import com.intellij.ui.IdeUICustomization -import fleet.kernel.DurableRef import kotlinx.coroutines.flow.Flow import org.jetbrains.annotations.ApiStatus import org.jetbrains.annotations.Nls @@ -63,9 +62,9 @@ class SeAllTab(private val delegate: SeTabDelegate) : SeTab { return delegate.canBeShownInFindResults() } - override suspend fun openInFindToolWindow(sessionRef: DurableRef, params: SeParams, initEvent: AnActionEvent): Boolean { + override suspend fun openInFindToolWindow(session: SeSession, params: SeParams, initEvent: AnActionEvent): Boolean { val allTabFilter = SeEverywhereFilter.from(params.filter) - return delegate.openInFindToolWindow(sessionRef, params, initEvent, true,allTabFilter.disabledProviderIds) + return delegate.openInFindToolWindow(session, params, initEvent, true,allTabFilter.disabledProviderIds) } override suspend fun getUpdatedPresentation(item: SeItemData): SeItemPresentation? { diff --git a/platform/searchEverywhere/frontend/src/tabs/all/SeAllTabFactory.kt b/platform/searchEverywhere/frontend/src/tabs/all/SeAllTabFactory.kt index cc94b4b43692..357a51cfb62d 100644 --- a/platform/searchEverywhere/frontend/src/tabs/all/SeAllTabFactory.kt +++ b/platform/searchEverywhere/frontend/src/tabs/all/SeAllTabFactory.kt @@ -6,11 +6,10 @@ import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.project.Project import com.intellij.platform.searchEverywhere.SeProviderId import com.intellij.platform.searchEverywhere.SeProviderIdUtils -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.frontend.SeTabFactory import com.intellij.platform.searchEverywhere.frontend.resultsProcessing.SeTabDelegate -import fleet.kernel.DurableRef import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus @@ -18,11 +17,11 @@ import org.jetbrains.annotations.ApiStatus class SeAllTabFactory : SeTabFactory { override val id: String get() = SeAllTab.ID - override suspend fun getTab(scope: CoroutineScope, project: Project?, sessionRef: DurableRef, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { + override suspend fun getTab(scope: CoroutineScope, project: Project?, session: SeSession, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { project ?: return null val delegate = SeTabDelegate(project, - sessionRef, + session, "All", listOf(SeProviderId(SeProviderIdUtils.WILDCARD_ID)), initEvent, diff --git a/platform/searchEverywhere/frontend/src/tabs/classes/SeClassesTab.kt b/platform/searchEverywhere/frontend/src/tabs/classes/SeClassesTab.kt index 076376c66b6a..4a1f9d1bba09 100644 --- a/platform/searchEverywhere/frontend/src/tabs/classes/SeClassesTab.kt +++ b/platform/searchEverywhere/frontend/src/tabs/classes/SeClassesTab.kt @@ -8,7 +8,7 @@ import com.intellij.openapi.util.Disposer import com.intellij.platform.searchEverywhere.SeItemData import com.intellij.platform.searchEverywhere.SeParams import com.intellij.platform.searchEverywhere.SeResultEvent -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeEmptyResultInfo import com.intellij.platform.searchEverywhere.frontend.SeEmptyResultInfoProvider import com.intellij.platform.searchEverywhere.frontend.SeFilterEditor @@ -17,7 +17,6 @@ import com.intellij.platform.searchEverywhere.frontend.resultsProcessing.SeTabDe import com.intellij.platform.searchEverywhere.frontend.tabs.target.SeTargetsFilterEditor import com.intellij.platform.searchEverywhere.utils.SuspendLazyProperty import com.intellij.platform.searchEverywhere.utils.initAsync -import fleet.kernel.DurableRef import kotlinx.coroutines.flow.Flow import org.jetbrains.annotations.ApiStatus @@ -50,8 +49,8 @@ class SeClassesTab(private val delegate: SeTabDelegate) : SeTab { return delegate.canBeShownInFindResults() } - override suspend fun openInFindToolWindow(sessionRef: DurableRef, params: SeParams, initEvent: AnActionEvent): Boolean { - return delegate.openInFindToolWindow(sessionRef, params, initEvent, false) + override suspend fun openInFindToolWindow(session: SeSession, params: SeParams, initEvent: AnActionEvent): Boolean { + return delegate.openInFindToolWindow(session, params, initEvent, false) } override suspend fun performExtendedAction(item: SeItemData): Boolean { diff --git a/platform/searchEverywhere/frontend/src/tabs/classes/SeClassesTabFactory.kt b/platform/searchEverywhere/frontend/src/tabs/classes/SeClassesTabFactory.kt index 9fbb5fbd827d..40bbb3c0a0dc 100644 --- a/platform/searchEverywhere/frontend/src/tabs/classes/SeClassesTabFactory.kt +++ b/platform/searchEverywhere/frontend/src/tabs/classes/SeClassesTabFactory.kt @@ -6,11 +6,10 @@ import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.project.Project import com.intellij.platform.searchEverywhere.SeProviderId import com.intellij.platform.searchEverywhere.SeProviderIdUtils -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.frontend.SeTabFactory import com.intellij.platform.searchEverywhere.frontend.resultsProcessing.SeTabDelegate -import fleet.kernel.DurableRef import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus @@ -18,11 +17,11 @@ import org.jetbrains.annotations.ApiStatus class SeClassesTabFactory : SeTabFactory { override val id: String get() = SeClassesTab.ID - override suspend fun getTab(scope: CoroutineScope, project: Project?, sessionRef: DurableRef, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { + override suspend fun getTab(scope: CoroutineScope, project: Project?, session: SeSession, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { project ?: return null val delegate = SeTabDelegate(project, - sessionRef, + session, "Classes", listOf(SeProviderId(SeProviderIdUtils.CLASSES_ID)), initEvent, diff --git a/platform/searchEverywhere/frontend/src/tabs/files/SeFilesTab.kt b/platform/searchEverywhere/frontend/src/tabs/files/SeFilesTab.kt index f2cf9921e254..c7deed33017b 100644 --- a/platform/searchEverywhere/frontend/src/tabs/files/SeFilesTab.kt +++ b/platform/searchEverywhere/frontend/src/tabs/files/SeFilesTab.kt @@ -8,7 +8,7 @@ import com.intellij.openapi.util.Disposer import com.intellij.platform.searchEverywhere.SeItemData import com.intellij.platform.searchEverywhere.SeParams import com.intellij.platform.searchEverywhere.SeResultEvent -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeEmptyResultInfo import com.intellij.platform.searchEverywhere.frontend.SeEmptyResultInfoProvider import com.intellij.platform.searchEverywhere.frontend.SeFilterEditor @@ -17,7 +17,6 @@ import com.intellij.platform.searchEverywhere.frontend.resultsProcessing.SeTabDe import com.intellij.platform.searchEverywhere.frontend.tabs.target.SeTargetsFilterEditor import com.intellij.platform.searchEverywhere.utils.SuspendLazyProperty import com.intellij.platform.searchEverywhere.utils.initAsync -import fleet.kernel.DurableRef import kotlinx.coroutines.flow.Flow import org.jetbrains.annotations.ApiStatus.Internal @@ -51,8 +50,8 @@ class SeFilesTab(private val delegate: SeTabDelegate) : SeTab { return delegate.canBeShownInFindResults() } - override suspend fun openInFindToolWindow(sessionRef: DurableRef, params: SeParams, initEvent: AnActionEvent): Boolean { - return delegate.openInFindToolWindow(sessionRef, params, initEvent, false) + override suspend fun openInFindToolWindow(session: SeSession, params: SeParams, initEvent: AnActionEvent): Boolean { + return delegate.openInFindToolWindow(session, params, initEvent, false) } override suspend fun performExtendedAction(item: SeItemData): Boolean { diff --git a/platform/searchEverywhere/frontend/src/tabs/files/SeFilesTabFactory.kt b/platform/searchEverywhere/frontend/src/tabs/files/SeFilesTabFactory.kt index a0288a4a263a..982f16eefbd1 100644 --- a/platform/searchEverywhere/frontend/src/tabs/files/SeFilesTabFactory.kt +++ b/platform/searchEverywhere/frontend/src/tabs/files/SeFilesTabFactory.kt @@ -6,11 +6,10 @@ import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.project.Project import com.intellij.platform.searchEverywhere.SeProviderId import com.intellij.platform.searchEverywhere.SeProviderIdUtils -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.frontend.SeTabFactory import com.intellij.platform.searchEverywhere.frontend.resultsProcessing.SeTabDelegate -import fleet.kernel.DurableRef import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus.Internal @@ -18,11 +17,11 @@ import org.jetbrains.annotations.ApiStatus.Internal class SeFilesTabFactory : SeTabFactory { override val id: String get() = SeFilesTab.ID - override suspend fun getTab(scope: CoroutineScope, project: Project?, sessionRef: DurableRef, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { + override suspend fun getTab(scope: CoroutineScope, project: Project?, session: SeSession, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { project ?: return null val delegate = SeTabDelegate(project, - sessionRef, + session, "Files", listOf(SeProviderId(SeProviderIdUtils.FILES_ID)), initEvent, diff --git a/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockAlphaLocal.kt b/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockAlphaLocal.kt index 39a35d844329..56c169e3f3b2 100644 --- a/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockAlphaLocal.kt +++ b/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockAlphaLocal.kt @@ -5,11 +5,10 @@ import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.project.Project import com.intellij.platform.searchEverywhere.SeProviderId -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.frontend.SeTabFactory import com.intellij.platform.searchEverywhere.providers.mocks.SeItemsProviderFactoryMockAlphaLocal -import fleet.kernel.DurableRef import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus.Internal @@ -17,9 +16,9 @@ import org.jetbrains.annotations.ApiStatus.Internal class SeTabFactoryMockAlphaLocal : SeTabFactory { override val id: String get() = "AlphaLocal" - override suspend fun getTab(scope: CoroutineScope, project: Project?, sessionRef: DurableRef, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? = + override suspend fun getTab(scope: CoroutineScope, project: Project?, session: SeSession, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? = SeTabMock.create(project, - sessionRef, + session, "AlphaLocal", listOf(SeProviderId(SeItemsProviderFactoryMockAlphaLocal.ID)), initEvent, diff --git a/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockBetaLocal.kt b/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockBetaLocal.kt index f311103e68ee..bdbdc4128093 100644 --- a/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockBetaLocal.kt +++ b/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockBetaLocal.kt @@ -5,11 +5,10 @@ import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.project.Project import com.intellij.platform.searchEverywhere.SeProviderId -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.frontend.SeTabFactory import com.intellij.platform.searchEverywhere.providers.mocks.SeItemsProviderFactoryMockBetaLocal -import fleet.kernel.DurableRef import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus.Internal @@ -17,9 +16,9 @@ import org.jetbrains.annotations.ApiStatus.Internal class SeTabFactoryMockBetaLocal : SeTabFactory { override val id: String get() = "BetaLocal" - override suspend fun getTab(scope: CoroutineScope, project: Project?, sessionRef: DurableRef, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? = + override suspend fun getTab(scope: CoroutineScope, project: Project?, session: SeSession, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? = SeTabMock.create(project, - sessionRef, + session, "BetaLocal", listOf(SeProviderId(SeItemsProviderFactoryMockBetaLocal.ID)), initEvent, diff --git a/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockCharlieRemote.kt b/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockCharlieRemote.kt index b719e3ff5bf4..99a9766bb6a2 100644 --- a/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockCharlieRemote.kt +++ b/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockCharlieRemote.kt @@ -5,10 +5,9 @@ import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.project.Project import com.intellij.platform.searchEverywhere.SeProviderId -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.frontend.SeTabFactory -import fleet.kernel.DurableRef import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.delay import org.jetbrains.annotations.ApiStatus.Internal @@ -17,10 +16,10 @@ import org.jetbrains.annotations.ApiStatus.Internal class SeTabFactoryMockCharlieRemote : SeTabFactory { override val id: String get() = "Charlie-Remote" - override suspend fun getTab(scope: CoroutineScope, project: Project?, sessionRef: DurableRef, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { + override suspend fun getTab(scope: CoroutineScope, project: Project?, session: SeSession, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { delay(1000) return SeTabMock.create(project, - sessionRef, + session, "Charlie-Remote", listOf(SeProviderId("SearchEverywhereItemsProviderMock_MockBackend")), initEvent, diff --git a/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockDeltaMixed.kt b/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockDeltaMixed.kt index e17657cace52..3e4c10f9da99 100644 --- a/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockDeltaMixed.kt +++ b/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabFactoryMockDeltaMixed.kt @@ -5,12 +5,11 @@ import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.project.Project import com.intellij.platform.searchEverywhere.SeProviderId -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.frontend.SeTabFactory import com.intellij.platform.searchEverywhere.providers.mocks.SeItemsProviderFactoryMockAlphaLocal import com.intellij.platform.searchEverywhere.providers.mocks.SeItemsProviderFactoryMockBetaLocal -import fleet.kernel.DurableRef import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus.Internal @@ -18,9 +17,9 @@ import org.jetbrains.annotations.ApiStatus.Internal class SeTabFactoryMockDeltaMixed : SeTabFactory { override val id: String get() = "DeltaMixed" - override suspend fun getTab(scope: CoroutineScope, project: Project?, sessionRef: DurableRef, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? = + override suspend fun getTab(scope: CoroutineScope, project: Project?, session: SeSession, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? = SeTabMock.create(project, - sessionRef, + session, "DeltaMixed", listOf(SeProviderId(SeItemsProviderFactoryMockAlphaLocal.ID), SeProviderId(SeItemsProviderFactoryMockBetaLocal.ID), diff --git a/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabMock.kt b/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabMock.kt index b5d1c7f834e4..012848c737a5 100644 --- a/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabMock.kt +++ b/platform/searchEverywhere/frontend/src/tabs/mocks/SeTabMock.kt @@ -8,7 +8,6 @@ import com.intellij.platform.searchEverywhere.* import com.intellij.platform.searchEverywhere.frontend.SeFilterEditor import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.frontend.resultsProcessing.SeTabDelegate -import fleet.kernel.DurableRef import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow import org.jetbrains.annotations.ApiStatus.Internal @@ -46,13 +45,13 @@ class SeTabMock( companion object { fun create( project: Project?, - sessionRef: DurableRef, + session: SeSession, name: String, providerIds: List, initEvent: AnActionEvent, scope: CoroutineScope, ): SeTabMock { - val delegate = SeTabDelegate(project, sessionRef, name, providerIds, initEvent, scope) + val delegate = SeTabDelegate(project, session, name, providerIds, initEvent, scope) return SeTabMock(name, delegate) } } diff --git a/platform/searchEverywhere/frontend/src/tabs/symbols/SeSymbolsTab.kt b/platform/searchEverywhere/frontend/src/tabs/symbols/SeSymbolsTab.kt index 24a7bae4e3f9..b1c07ba7cfba 100644 --- a/platform/searchEverywhere/frontend/src/tabs/symbols/SeSymbolsTab.kt +++ b/platform/searchEverywhere/frontend/src/tabs/symbols/SeSymbolsTab.kt @@ -8,7 +8,7 @@ import com.intellij.openapi.util.Disposer import com.intellij.platform.searchEverywhere.SeItemData import com.intellij.platform.searchEverywhere.SeParams import com.intellij.platform.searchEverywhere.SeResultEvent -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeEmptyResultInfo import com.intellij.platform.searchEverywhere.frontend.SeEmptyResultInfoProvider import com.intellij.platform.searchEverywhere.frontend.SeFilterEditor @@ -17,7 +17,6 @@ import com.intellij.platform.searchEverywhere.frontend.resultsProcessing.SeTabDe import com.intellij.platform.searchEverywhere.frontend.tabs.target.SeTargetsFilterEditor import com.intellij.platform.searchEverywhere.utils.SuspendLazyProperty import com.intellij.platform.searchEverywhere.utils.initAsync -import fleet.kernel.DurableRef import kotlinx.coroutines.flow.Flow import org.jetbrains.annotations.ApiStatus @@ -50,8 +49,8 @@ class SeSymbolsTab(private val delegate: SeTabDelegate) : SeTab { return delegate.canBeShownInFindResults() } - override suspend fun openInFindToolWindow(sessionRef: DurableRef, params: SeParams, initEvent: AnActionEvent): Boolean { - return delegate.openInFindToolWindow(sessionRef, params, initEvent, false) + override suspend fun openInFindToolWindow(session: SeSession, params: SeParams, initEvent: AnActionEvent): Boolean { + return delegate.openInFindToolWindow(session, params, initEvent, false) } override suspend fun performExtendedAction(item: SeItemData): Boolean { diff --git a/platform/searchEverywhere/frontend/src/tabs/symbols/SeSymbolsTabFactory.kt b/platform/searchEverywhere/frontend/src/tabs/symbols/SeSymbolsTabFactory.kt index ceeb36dd6d55..5f350d1606fb 100644 --- a/platform/searchEverywhere/frontend/src/tabs/symbols/SeSymbolsTabFactory.kt +++ b/platform/searchEverywhere/frontend/src/tabs/symbols/SeSymbolsTabFactory.kt @@ -6,11 +6,10 @@ import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.project.Project import com.intellij.platform.searchEverywhere.SeProviderId import com.intellij.platform.searchEverywhere.SeProviderIdUtils -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.frontend.SeTabFactory import com.intellij.platform.searchEverywhere.frontend.resultsProcessing.SeTabDelegate -import fleet.kernel.DurableRef import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus @@ -18,11 +17,11 @@ import org.jetbrains.annotations.ApiStatus class SeSymbolsTabFactory : SeTabFactory { override val id: String get() = SeSymbolsTab.ID - override suspend fun getTab(scope: CoroutineScope, project: Project?, sessionRef: DurableRef, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { + override suspend fun getTab(scope: CoroutineScope, project: Project?, session: SeSession, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { project ?: return null val delegate = SeTabDelegate(project, - sessionRef, + session, "Symbols", listOf(SeProviderId(SeProviderIdUtils.SYMBOLS_ID)), initEvent, diff --git a/platform/searchEverywhere/frontend/src/tabs/text/SeTextTab.kt b/platform/searchEverywhere/frontend/src/tabs/text/SeTextTab.kt index cdc71ce973aa..0f3acf31d3f5 100644 --- a/platform/searchEverywhere/frontend/src/tabs/text/SeTextTab.kt +++ b/platform/searchEverywhere/frontend/src/tabs/text/SeTextTab.kt @@ -7,16 +7,11 @@ import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.DataContext import com.intellij.openapi.util.Disposer -import com.intellij.platform.searchEverywhere.SeItemData -import com.intellij.platform.searchEverywhere.SeParams -import com.intellij.platform.searchEverywhere.SeResultEvent -import com.intellij.platform.searchEverywhere.SeSessionEntity -import com.intellij.platform.searchEverywhere.SeTextSearchOptions +import com.intellij.platform.searchEverywhere.* import com.intellij.platform.searchEverywhere.frontend.SeEmptyResultInfo import com.intellij.platform.searchEverywhere.frontend.SeFilterEditor import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.frontend.resultsProcessing.SeTabDelegate -import fleet.kernel.DurableRef import com.intellij.platform.searchEverywhere.utils.SuspendLazyProperty import com.intellij.platform.searchEverywhere.utils.initAsync import kotlinx.coroutines.flow.Flow @@ -49,8 +44,8 @@ class SeTextTab(private val delegate: SeTabDelegate, registerShortcut: (AnAction return delegate.canBeShownInFindResults() } - override suspend fun openInFindToolWindow(sessionRef: DurableRef, params: SeParams, initEvent: AnActionEvent): Boolean { - return delegate.openInFindToolWindow(sessionRef, params, initEvent, false) + override suspend fun openInFindToolWindow(session: SeSession, params: SeParams, initEvent: AnActionEvent): Boolean { + return delegate.openInFindToolWindow(session, params, initEvent, false) } private fun getTextSearchOptions(): SeTextSearchOptions? { diff --git a/platform/searchEverywhere/frontend/src/tabs/text/SeTextTabFactory.kt b/platform/searchEverywhere/frontend/src/tabs/text/SeTextTabFactory.kt index f93d6db16674..a04e5fad73d5 100644 --- a/platform/searchEverywhere/frontend/src/tabs/text/SeTextTabFactory.kt +++ b/platform/searchEverywhere/frontend/src/tabs/text/SeTextTabFactory.kt @@ -7,11 +7,10 @@ import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.project.Project import com.intellij.platform.searchEverywhere.SeProviderId import com.intellij.platform.searchEverywhere.SeProviderIdUtils -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.frontend.SeTabFactory import com.intellij.platform.searchEverywhere.frontend.resultsProcessing.SeTabDelegate -import fleet.kernel.DurableRef import kotlinx.coroutines.CoroutineScope import org.jetbrains.annotations.ApiStatus @@ -19,11 +18,11 @@ import org.jetbrains.annotations.ApiStatus class SeTextTabFactory : SeTabFactory { override val id: String get() = SeTextTab.ID - override suspend fun getTab(scope: CoroutineScope, project: Project?, sessionRef: DurableRef, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { + override suspend fun getTab(scope: CoroutineScope, project: Project?, session: SeSession, initEvent: AnActionEvent, registerShortcut: (AnAction) -> Unit): SeTab? { if (project == null || !TextSearchContributor.enabled()) return null val delegate = SeTabDelegate(project, - sessionRef, + session, "Text", listOf(SeProviderId(SeProviderIdUtils.TEXT_ID)), initEvent, diff --git a/platform/searchEverywhere/frontend/src/vm/SePopupVm.kt b/platform/searchEverywhere/frontend/src/vm/SePopupVm.kt index 605ad33d2db6..ff23673df4d3 100644 --- a/platform/searchEverywhere/frontend/src/vm/SePopupVm.kt +++ b/platform/searchEverywhere/frontend/src/vm/SePopupVm.kt @@ -15,11 +15,10 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.wm.ToolWindowManager.Companion.getInstance import com.intellij.platform.searchEverywhere.SeItemData -import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.utils.SuspendLazyProperty import com.intellij.util.SystemProperties -import fleet.kernel.DurableRef import kotlinx.coroutines.* import kotlinx.coroutines.flow.* import org.jetbrains.annotations.ApiStatus @@ -29,7 +28,6 @@ import org.jetbrains.annotations.ApiStatus class SePopupVm( val coroutineScope: CoroutineScope, private val project: Project?, - private val sessionRef: DurableRef, tabs: List, deferredTabs: List>, initialSearchPattern: String?, @@ -139,8 +137,8 @@ class SePopupVm( } } - suspend fun openInFindWindow(sessionRef: DurableRef, initEvent: AnActionEvent): Boolean { - return currentTab.openInFindWindow(sessionRef, initEvent) + suspend fun openInFindWindow(session: SeSession, initEvent: AnActionEvent): Boolean { + return currentTab.openInFindWindow(session, initEvent) } fun selectNextTab() { diff --git a/platform/searchEverywhere/frontend/src/vm/SeTabVm.kt b/platform/searchEverywhere/frontend/src/vm/SeTabVm.kt index eb34cad15e58..6289380c5271 100644 --- a/platform/searchEverywhere/frontend/src/vm/SeTabVm.kt +++ b/platform/searchEverywhere/frontend/src/vm/SeTabVm.kt @@ -24,7 +24,6 @@ import com.intellij.platform.searchEverywhere.frontend.SeTab import com.intellij.platform.searchEverywhere.providers.SeLog import com.intellij.platform.searchEverywhere.utils.SuspendLazyProperty import com.intellij.platform.searchEverywhere.utils.initAsync -import fleet.kernel.DurableRef import kotlinx.coroutines.* import kotlinx.coroutines.flow.* import org.jetbrains.annotations.ApiStatus @@ -184,10 +183,10 @@ class SeTabVm( return tab.canBeShownInFindResults() } - suspend fun openInFindWindow(sessionRef: DurableRef, initEvent: AnActionEvent): Boolean { + suspend fun openInFindWindow(session: SeSession, initEvent: AnActionEvent): Boolean { val params = SeParams(searchPattern.value, (filterEditor.getValue()?.resultFlow?.value ?: SeFilterState.Empty)) - return tab.openInFindToolWindow(sessionRef, params, initEvent) + return tab.openInFindToolWindow(session, params, initEvent) } suspend fun getSearchEverywhereToggleAction(): SearchEverywhereToggleAction? { diff --git a/platform/searchEverywhere/shared/api-dump-experimental.txt b/platform/searchEverywhere/shared/api-dump-experimental.txt index b658b34b7893..5a4555596591 100644 --- a/platform/searchEverywhere/shared/api-dump-experimental.txt +++ b/platform/searchEverywhere/shared/api-dump-experimental.txt @@ -17,3 +17,7 @@ - a:isMultiSelectionSupported():Z *f:com.intellij.platform.searchEverywhere.SeItemPresentation$Companion - f:serializer():kotlinx.serialization.KSerializer +*:com.intellij.platform.searchEverywhere.SeSession +- *sf:Companion:com.intellij.platform.searchEverywhere.SeSession$Companion +*f:com.intellij.platform.searchEverywhere.SeSession$Companion +- f:serializer():kotlinx.serialization.KSerializer diff --git a/platform/searchEverywhere/shared/src/SeItemData.kt b/platform/searchEverywhere/shared/src/SeItemData.kt index cf972de979ef..6e12d60456ca 100644 --- a/platform/searchEverywhere/shared/src/SeItemData.kt +++ b/platform/searchEverywhere/shared/src/SeItemData.kt @@ -37,7 +37,7 @@ class SeItemData( @ApiStatus.Internal companion object { suspend fun createItemData( - sessionRef: DurableRef, + session: SeSession, uuid: String, item: SeItem, providerId: SeProviderId, @@ -46,7 +46,7 @@ class SeItemData( additionalInfo: Map, uuidToReplace: List, ): SeItemData? { - val entityRef = SeItemEntity.createWith(sessionRef, item) ?: return null + val entityRef = SeItemEntity.createWith(session, item) ?: return null val additionalInfo = additionalInfo.toMutableMap() if (item is SeLegacyItem) { diff --git a/platform/searchEverywhere/shared/src/SeSession.kt b/platform/searchEverywhere/shared/src/SeSession.kt new file mode 100644 index 000000000000..b8d7a6102bb9 --- /dev/null +++ b/platform/searchEverywhere/shared/src/SeSession.kt @@ -0,0 +1,17 @@ +// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.platform.searchEverywhere + +import fleet.kernel.DurableRef +import kotlinx.serialization.Serializable +import org.jetbrains.annotations.ApiStatus + +@ApiStatus.Experimental +@Serializable +sealed interface SeSession + +@ApiStatus.Internal +@Serializable +class SeSessionImpl(val ref: DurableRef): SeSession + +@ApiStatus.Internal +fun SeSession.asRef(): DurableRef = (this as SeSessionImpl).ref \ No newline at end of file diff --git a/platform/searchEverywhere/shared/src/SeSessionEntity.kt b/platform/searchEverywhere/shared/src/SeSessionEntity.kt index 0e1d7605120e..f53c8ac8507f 100644 --- a/platform/searchEverywhere/shared/src/SeSessionEntity.kt +++ b/platform/searchEverywhere/shared/src/SeSessionEntity.kt @@ -3,7 +3,10 @@ package com.intellij.platform.searchEverywhere import com.jetbrains.rhizomedb.EID import com.jetbrains.rhizomedb.Entity -import fleet.kernel.* +import fleet.kernel.DurableEntityType +import fleet.kernel.change +import fleet.kernel.ref +import fleet.kernel.shared import kotlinx.serialization.Serializable import org.jetbrains.annotations.ApiStatus.Internal @@ -13,10 +16,12 @@ class SeSessionEntity(override val eid: EID) : Entity { @Internal companion object : DurableEntityType(SeSessionEntity::class, ::SeSessionEntity) { - suspend fun createRef(): DurableRef = change { + suspend fun createSession(): SeSession = change { shared { SeSessionEntity.new {} } - }.ref() + }.ref().let { + SeSessionImpl(it) + } } } \ No newline at end of file diff --git a/platform/searchEverywhere/shared/src/impl/SeItemEntity.kt b/platform/searchEverywhere/shared/src/impl/SeItemEntity.kt index 8fb22a3eb5b5..6b59860d0f37 100644 --- a/platform/searchEverywhere/shared/src/impl/SeItemEntity.kt +++ b/platform/searchEverywhere/shared/src/impl/SeItemEntity.kt @@ -3,7 +3,9 @@ package com.intellij.platform.searchEverywhere.impl import com.intellij.platform.kernel.withKernel import com.intellij.platform.searchEverywhere.SeItem +import com.intellij.platform.searchEverywhere.SeSession import com.intellij.platform.searchEverywhere.SeSessionEntity +import com.intellij.platform.searchEverywhere.asRef import com.intellij.platform.searchEverywhere.impl.SeItemEntityHolder.Companion.Item import com.intellij.platform.searchEverywhere.impl.SeItemEntityHolder.Companion.ItemEntity import com.jetbrains.rhizomedb.* @@ -23,10 +25,10 @@ class SeItemEntity(override val eid: EID) : Entity { companion object : DurableEntityType(SeItemEntity::class, ::SeItemEntity) { private val Session = requiredRef("session", RefFlags.CASCADE_DELETE_BY) - suspend fun createWith(sessionRef: DurableRef, item: SeItem): DurableRef? { + suspend fun createWith(session: SeSession, item: SeItem): DurableRef? { @Suppress("DEPRECATION") return withKernel { - val session = sessionRef.derefOrNull() ?: return@withKernel null + val session = session.asRef().derefOrNull() ?: return@withKernel null change { val entity = shared { diff --git a/platform/searchEverywhere/shared/src/impl/SeRemoteApi.kt b/platform/searchEverywhere/shared/src/impl/SeRemoteApi.kt index 2cf3988ab038..03ec77711863 100644 --- a/platform/searchEverywhere/shared/src/impl/SeRemoteApi.kt +++ b/platform/searchEverywhere/shared/src/impl/SeRemoteApi.kt @@ -7,7 +7,6 @@ import com.intellij.platform.rpc.RemoteApiProviderService import com.intellij.platform.scopes.SearchScopesInfo import com.intellij.platform.searchEverywhere.* import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation -import fleet.kernel.DurableRef import fleet.rpc.RemoteApi import fleet.rpc.Rpc import fleet.rpc.remoteApiDescriptor @@ -31,7 +30,7 @@ interface SeRemoteApi : RemoteApi { // 4. BE sends the next batch of items suspend fun getItems( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, providerIds: List, isAllTab: Boolean, params: SeParams, @@ -41,7 +40,7 @@ interface SeRemoteApi : RemoteApi { suspend fun itemSelected( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, itemData: SeItemData, modifiers: Int, searchText: String, @@ -52,19 +51,19 @@ interface SeRemoteApi : RemoteApi { * Defines if results can be shown in Find toolwindow. */ suspend fun canBeShownInFindResults(projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerIds: List, isAllTab: Boolean): Boolean suspend fun isShownInSeparateTab(projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerId: SeProviderId): Boolean suspend fun openInFindToolWindow( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId?, providerIds: List, params: SeParams, @@ -73,13 +72,13 @@ interface SeRemoteApi : RemoteApi { suspend fun getAvailableProviderIds( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId ): Map> suspend fun getSearchScopesInfoForProviders( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerIds: List, isAllTab: Boolean, @@ -88,7 +87,7 @@ interface SeRemoteApi : RemoteApi { suspend fun getTypeVisibilityStatesForProviders( index: Int, projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerIds: List, isAllTab: Boolean, @@ -96,7 +95,7 @@ interface SeRemoteApi : RemoteApi { suspend fun getDisplayNameForProviders( projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, dataContextId: DataContextId, providerIds: List, ): Map @@ -104,7 +103,7 @@ interface SeRemoteApi : RemoteApi { suspend fun getUpdatedPresentation(projectId: ProjectId, item: SeItemData): SeItemPresentation? suspend fun performExtendedAction(projectId: ProjectId, - sessionRef: DurableRef, + session: SeSession, itemData: SeItemData, isAllTab: Boolean): Boolean diff --git a/platform/searchEverywhere/shared/src/providers/SeLocalItemDataProvider.kt b/platform/searchEverywhere/shared/src/providers/SeLocalItemDataProvider.kt index 35a6ca92de06..d061a5ab0568 100644 --- a/platform/searchEverywhere/shared/src/providers/SeLocalItemDataProvider.kt +++ b/platform/searchEverywhere/shared/src/providers/SeLocalItemDataProvider.kt @@ -8,7 +8,6 @@ import com.intellij.openapi.util.Disposer import com.intellij.platform.scopes.SearchScopesInfo import com.intellij.platform.searchEverywhere.* import com.intellij.platform.searchEverywhere.providers.target.SeTypeVisibilityStatePresentation -import fleet.kernel.DurableRef import kotlinx.coroutines.CancellationException import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.channels.BufferOverflow @@ -25,7 +24,7 @@ import kotlin.concurrent.atomics.incrementAndFetch @ApiStatus.Internal class SeLocalItemDataProvider( private val provider: SeItemsProvider, - private val sessionRef: DurableRef, + private val session: SeSession, private val logLabel: String = "Local", ) : Disposable { val id: SeProviderId @@ -42,7 +41,7 @@ class SeLocalItemDataProvider( fun getItems(params: SeParams): Flow { val counter = AtomicInt(0) return getRawItems(params).mapNotNull { item -> - val itemData = SeItemData.createItemData(sessionRef, UUID.randomUUID().toString(), item, id, item.weight(), item.presentation(), infoWithReportableId, emptyList()) + val itemData = SeItemData.createItemData(session, UUID.randomUUID().toString(), item, id, item.weight(), item.presentation(), infoWithReportableId, emptyList()) itemData?.also { SeLog.log(SeLog.ITEM_EMIT) { val count = counter.incrementAndFetch() diff --git a/platform/searchEverywhere/shared/src/providers/SeProvidersHolder.kt b/platform/searchEverywhere/shared/src/providers/SeProvidersHolder.kt index 65b69bdafcc9..b87776ceb4c2 100644 --- a/platform/searchEverywhere/shared/src/providers/SeProvidersHolder.kt +++ b/platform/searchEverywhere/shared/src/providers/SeProvidersHolder.kt @@ -12,7 +12,6 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.util.Disposer import com.intellij.platform.searchEverywhere.* import com.intellij.platform.searchEverywhere.providers.SeProvidersHolder.Companion.initialize -import fleet.kernel.DurableRef import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.jetbrains.annotations.ApiStatus @@ -54,7 +53,7 @@ class SeProvidersHolder( suspend fun initialize( initEvent: AnActionEvent, project: Project?, - sessionRef: DurableRef, + session: SeSession, logLabel: String, providerIds: List? = null, ): SeProvidersHolder { @@ -96,11 +95,11 @@ class SeProvidersHolder( } provider?.let { - providers[SeProviderId(it.id)] = SeLocalItemDataProvider(it, sessionRef, logLabel) + providers[SeProviderId(it.id)] = SeLocalItemDataProvider(it, session, logLabel) } separateTabProvider?.let { - separateTabProviders[SeProviderId(it.id)] = SeLocalItemDataProvider(it, sessionRef, logLabel) + separateTabProviders[SeProviderId(it.id)] = SeLocalItemDataProvider(it, session, logLabel) } }