diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/DefaultUiPluginManagerController.kt b/platform/platform-impl/src/com/intellij/ide/plugins/newui/DefaultUiPluginManagerController.kt index 1ec3d117a531..94977fd254b5 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/DefaultUiPluginManagerController.kt +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/DefaultUiPluginManagerController.kt @@ -236,6 +236,10 @@ object DefaultUiPluginManagerController : UiPluginManagerController { return changedStates } + override suspend fun isPluginEnabled(pluginId: PluginId): Boolean { + return !PluginManagerCore.isDisabled(pluginId) + } + override fun connectToUpdateServiceWithCounter(sessionId: String, callback: (Int?) -> Unit): PluginUpdatesService { val session = PluginManagerSessionService.getInstance().getSession(sessionId) val service = PluginUpdatesService.connectWithCounter(callback) diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/UiPluginManagerController.kt b/platform/platform-impl/src/com/intellij/ide/plugins/newui/UiPluginManagerController.kt index 81bcc80be3be..7d075afaf8a4 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/UiPluginManagerController.kt +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/UiPluginManagerController.kt @@ -83,6 +83,7 @@ interface UiPluginManagerController { suspend fun loadErrors(sessionId: String): Map suspend fun resetSession(sessionId: String, removeSession: Boolean, parentComponent: JComponent? = null): Map + suspend fun isPluginEnabled(pluginId: PluginId): Boolean companion object { val EP_NAME: ExtensionPointName = ExtensionPointName("com.intellij.uiPluginManagerController") diff --git a/platform/pluginManager/backend/src/com/intellij/platform/pluginManager/backend/rpc/BackendPluginManagerApi.kt b/platform/pluginManager/backend/src/com/intellij/platform/pluginManager/backend/rpc/BackendPluginManagerApi.kt index c95aa010acc3..6427fe94dbe7 100644 --- a/platform/pluginManager/backend/src/com/intellij/platform/pluginManager/backend/rpc/BackendPluginManagerApi.kt +++ b/platform/pluginManager/backend/src/com/intellij/platform/pluginManager/backend/rpc/BackendPluginManagerApi.kt @@ -211,4 +211,8 @@ class BackendPluginManagerApi : PluginManagerApi { val initSessionResult = DefaultUiPluginManagerController.initSession(sessionId) return InitSessionResult(initSessionResult.visiblePlugins.map { PluginDto.fromModel(it) }, initSessionResult.pluginStates) } + + override suspend fun isPluginEnabled(pluginId: PluginId): Boolean { + return DefaultUiPluginManagerController.isPluginEnabled(pluginId) + } } \ No newline at end of file diff --git a/platform/pluginManager/frontend/src/com/intellij/platform/pluginManager/frontend/BackendUiPluginManagerController.kt b/platform/pluginManager/frontend/src/com/intellij/platform/pluginManager/frontend/BackendUiPluginManagerController.kt index 7170a1aba0ef..976d7c87b16c 100644 --- a/platform/pluginManager/frontend/src/com/intellij/platform/pluginManager/frontend/BackendUiPluginManagerController.kt +++ b/platform/pluginManager/frontend/src/com/intellij/platform/pluginManager/frontend/BackendUiPluginManagerController.kt @@ -113,6 +113,10 @@ class BackendUiPluginManagerController() : UiPluginManagerController { return awaitForResult { PluginManagerApi.getInstance().isDisabledInDiff(sessionId, pluginId) } } + override suspend fun isPluginEnabled(pluginId: PluginId): Boolean { + return PluginManagerApi.getInstance().isPluginEnabled(pluginId) + } + override fun isPluginInstalled(pluginId: PluginId): Boolean { return awaitForResult { PluginManagerApi.getInstance().isPluginInstalled(pluginId) } } diff --git a/platform/pluginManager/shared/src/com/intellij/platform/pluginManager/shared/rpc/PluginManagerApi.kt b/platform/pluginManager/shared/src/com/intellij/platform/pluginManager/shared/rpc/PluginManagerApi.kt index 2ee977dc490f..ed0787e8bb74 100644 --- a/platform/pluginManager/shared/src/com/intellij/platform/pluginManager/shared/rpc/PluginManagerApi.kt +++ b/platform/pluginManager/shared/src/com/intellij/platform/pluginManager/shared/rpc/PluginManagerApi.kt @@ -1,18 +1,15 @@ // 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.pluginManager.shared.rpc -import com.intellij.ide.plugins.marketplace.MarketplaceSearchPluginData import com.intellij.ide.plugins.api.PluginDto import com.intellij.ide.plugins.marketplace.CheckErrorsResult import com.intellij.ide.plugins.marketplace.IdeCompatibleUpdate import com.intellij.ide.plugins.marketplace.InitSessionResult import com.intellij.ide.plugins.marketplace.IntellijPluginMetadata -import com.intellij.ide.plugins.marketplace.IntellijUpdateMetadata import com.intellij.ide.plugins.marketplace.PluginReviewComment import com.intellij.ide.plugins.marketplace.PluginSearchResult import com.intellij.ide.plugins.marketplace.SetEnabledStateResult import com.intellij.ide.plugins.newui.PluginInstallationState -import com.intellij.ide.plugins.newui.PluginUiModel import com.intellij.openapi.extensions.PluginId import com.intellij.platform.project.ProjectId import com.intellij.platform.rpc.RemoteApiProviderService @@ -66,6 +63,7 @@ interface PluginManagerApi : RemoteApi { suspend fun checkPluginCanBeDownloaded(plugin: PluginDto): Boolean suspend fun loadErrors(sessionId: String): Map suspend fun initSession(sessionId: String): InitSessionResult + suspend fun isPluginEnabled(pluginId: PluginId): Boolean companion object { suspend fun getInstance(): PluginManagerApi {