IJPL-180572 Optimised 'PluginRequiresUltimateButItsDisabled' operations for RemDev

GitOrigin-RevId: e001c6a3eeabb2c59230e60d6855f32588b41a4d
This commit is contained in:
Denis Zaichenko
2025-07-10 19:11:26 +00:00
committed by intellij-monorepo-bot
parent 867c71bc95
commit 3125b92fec
5 changed files with 14 additions and 3 deletions
@@ -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)
@@ -83,6 +83,7 @@ interface UiPluginManagerController {
suspend fun loadErrors(sessionId: String): Map<PluginId, CheckErrorsResult>
suspend fun resetSession(sessionId: String, removeSession: Boolean, parentComponent: JComponent? = null): Map<PluginId, Boolean>
suspend fun isPluginEnabled(pluginId: PluginId): Boolean
companion object {
val EP_NAME: ExtensionPointName<UiPluginManagerController> = ExtensionPointName<UiPluginManagerController>("com.intellij.uiPluginManagerController")
@@ -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)
}
}
@@ -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) }
}
@@ -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<Unit> {
suspend fun checkPluginCanBeDownloaded(plugin: PluginDto): Boolean
suspend fun loadErrors(sessionId: String): Map<PluginId, CheckErrorsResult>
suspend fun initSession(sessionId: String): InitSessionResult
suspend fun isPluginEnabled(pluginId: PluginId): Boolean
companion object {
suspend fun getInstance(): PluginManagerApi {