IJPL-180572 Added combined frontend plugin manager controller

Introduced `FrontendDelegatingPluginManagerController` to unify local and remote plugin management, enabling a merged view of plugin sources. Updated related configurations and dependencies to seamlessly support this integration.

GitOrigin-RevId: e2ae710f89f405422ecd177fe65cc1d7e29659a5
This commit is contained in:
Denis Zaichenko
2025-05-30 09:56:43 +02:00
committed by intellij-monorepo-bot
parent 43d43e2d57
commit cad2ef4938
3 changed files with 7 additions and 8 deletions

View File

@@ -40,9 +40,7 @@ interface PluginUiModel {
val isPaid: Boolean
val isEnabled: Boolean
val source: PluginSource
val dependencies: List<PluginDependencyModel>
var dependencyNames: Collection<String>?
@get:NlsSafe
@@ -56,14 +54,16 @@ interface PluginUiModel {
@get:NlsSafe
val productCode: String?
@get:NlsSafe
val size: String?
val releaseVersion: Int
@get:NlsSafe
val displayCategory: String?
var source: PluginSource
@get:NlsSafe
var forumUrl: String?
@@ -147,7 +147,7 @@ private fun PluginUiModel.getPluginDescriptor(): IdeaPluginDescriptor {
@ApiStatus.Internal
enum class PluginSource {
LOCAL, REMOTE
LOCAL, REMOTE, BOTH
}
/**

View File

@@ -55,16 +55,15 @@ class PluginUiModelAdapter(
override val isEnabled: Boolean
get() = !PluginManagerCore.isDisabled(pluginDescriptor.pluginId)
override val source: PluginSource = PluginSource.LOCAL
override val dependencies: List<PluginDependencyModel>
get() = pluginDescriptor.dependencies.map { PluginDependencyModel(it.pluginId, it.isOptional) }
override val vendor: String?
get() = pluginDescriptor.vendor
override val organization: String?
get() = pluginDescriptor.organization
override val changeNotes: String?
get() = pluginDescriptor.changeNotes
override val productCode: String?
get() = pluginDescriptor.productCode
override val size: String?
@@ -80,6 +79,7 @@ class PluginUiModelAdapter(
pluginDescriptor.forumUrl = value
}
}
override var source: PluginSource = PluginSource.LOCAL
override var licenseUrl: String?
get() = if (pluginDescriptor is PluginNode) pluginDescriptor.licenseUrl else null
set(value) {

View File

@@ -4,7 +4,6 @@
<module name="intellij.platform.pluginManager.shared"/>
</dependencies>
<extensions defaultExtensionNs="com.intellij">
<uiPluginManagerController implementation="com.intellij.platform.pluginManager.frontend.BackendUiPluginManagerController"
order="first"/>
<uiPluginManagerController implementation="com.intellij.platform.pluginManager.frontend.BackendUiPluginManagerController"/>
</extensions>
</idea-plugin>