IJPL-177442 Code review fixes

(cherry picked from commit ddf8a16db843efa0e4693db24afe2eb4a7848ba3)

IJ-MR-163725

GitOrigin-RevId: 2e496c0ce786b155f79941ead23cec50491771f7
This commit is contained in:
Denis Zaichenko
2025-06-05 13:48:29 +00:00
committed by intellij-monorepo-bot
parent fedea49ae7
commit ade5c6b0ec
18 changed files with 25 additions and 61 deletions
@@ -3360,7 +3360,6 @@ f:com.intellij.ide.plugins.PluginNode
- getUntilBuild():java.lang.String
- getUrl():java.lang.String
- getVendor():java.lang.String
- getVendorDetails():com.intellij.ide.plugins.PluginNodeVendorDetails
- getVendorEmail():java.lang.String
- getVendorUrl():java.lang.String
- getVersion():java.lang.String
@@ -3415,7 +3414,6 @@ f:com.intellij.ide.plugins.PluginNode
- setUntilBuild(java.lang.String):V
- setUrl(java.lang.String):V
- setVendor(java.lang.String):V
- setVendorDetails(com.intellij.ide.plugins.PluginNodeVendorDetails):V
- setVendorDetails(java.lang.String):V
- setVendorDetails(java.lang.String,java.lang.String,java.lang.Boolean,java.lang.Boolean):V
- setVendorEmail(java.lang.String):V
@@ -3467,7 +3465,6 @@ f:com.intellij.ide.plugins.RepositoryHelper
- s:loadPlugins(java.lang.String,com.intellij.openapi.progress.ProgressIndicator):java.util.List
- s:loadPlugins(java.lang.String,com.intellij.openapi.util.BuildNumber,com.intellij.openapi.progress.ProgressIndicator):java.util.List
- s:loadPlugins(java.util.Set):java.util.Collection
- s:mergePluginsFromRepositories(java.util.List,java.util.List,Z):java.util.Collection
c:com.intellij.ide.plugins.StandalonePluginUpdateChecker
- com.intellij.openapi.Disposable
- sf:Companion:com.intellij.ide.plugins.StandalonePluginUpdateChecker$Companion
-23
View File
@@ -216,29 +216,6 @@ com.intellij.ide.plugins.PluginManagerMain$PluginEnabler
- enable(java.util.Collection):Z
- enableById(java.util.Set):Z
- isDisabled(com.intellij.openapi.extensions.PluginId):Z
f:com.intellij.ide.plugins.PluginNodeVendorDetails
- sf:Companion:com.intellij.ide.plugins.PluginNodeVendorDetails$Companion
- <init>(java.lang.String,java.lang.String,java.lang.Boolean,java.lang.Boolean):V
- b:<init>(java.lang.String,java.lang.String,java.lang.Boolean,java.lang.Boolean,I,kotlin.jvm.internal.DefaultConstructorMarker):V
- f:component1():java.lang.String
- f:component2():java.lang.String
- f:copy(java.lang.String,java.lang.String,java.lang.Boolean,java.lang.Boolean):com.intellij.ide.plugins.PluginNodeVendorDetails
- bs:copy$default(com.intellij.ide.plugins.PluginNodeVendorDetails,java.lang.String,java.lang.String,java.lang.Boolean,java.lang.Boolean,I,java.lang.Object):com.intellij.ide.plugins.PluginNodeVendorDetails
- equals(java.lang.Object):Z
- f:getName():java.lang.String
- f:getUrl():java.lang.String
- hashCode():I
- f:isTrader():Z
- f:isVerified():Z
bf:com.intellij.ide.plugins.PluginNodeVendorDetails$$serializer
- kotlinx.serialization.internal.GeneratedSerializer
- sf:INSTANCE:com.intellij.ide.plugins.PluginNodeVendorDetails$$serializer
- f:childSerializers():kotlinx.serialization.KSerializer[]
- f:deserialize(kotlinx.serialization.encoding.Decoder):com.intellij.ide.plugins.PluginNodeVendorDetails
- f:getDescriptor():kotlinx.serialization.descriptors.SerialDescriptor
- f:serialize(kotlinx.serialization.encoding.Encoder,com.intellij.ide.plugins.PluginNodeVendorDetails):V
f:com.intellij.ide.plugins.PluginNodeVendorDetails$Companion
- f:serializer():kotlinx.serialization.KSerializer
com.intellij.ide.plugins.PluginStateListener
- a:install(com.intellij.ide.plugins.IdeaPluginDescriptor):V
- uninstall(com.intellij.ide.plugins.IdeaPluginDescriptor):V
@@ -237,10 +237,12 @@ public final class PluginNode implements IdeaPluginDescriptor {
this.vendor = vendor;
}
@ApiStatus.Internal
public @Nullable PluginNodeVendorDetails getVendorDetails() {
return vendorDetails;
}
@ApiStatus.Internal
public void setVendorDetails(@Nullable PluginNodeVendorDetails vendorDetails) {
this.vendorDetails = vendorDetails;
}
@@ -3,11 +3,13 @@ package com.intellij.ide.plugins
import com.intellij.openapi.util.NlsSafe
import kotlinx.serialization.Serializable
import org.jetbrains.annotations.ApiStatus
/**
* Marketplace vendor details.
*/
@Serializable
@ApiStatus.Internal
data class PluginNodeVendorDetails(
@NlsSafe val name: String,
val url: String? = null,
@@ -201,6 +201,7 @@ public final class RepositoryHelper {
}
}
@ApiStatus.Internal
@Deprecated(forRemoval = true)
public static @NotNull Collection<PluginNode> mergePluginsFromRepositories(
@NotNull List<PluginNode> marketplacePlugins,
@@ -48,7 +48,6 @@ class PluginDto(
override var vendorDetails: PluginNodeVendorDetails? = null
override var reviewComments: ReviewsPageContainer? = null
// Mutable properties
override var forumUrl: String? = null
override var licenseUrl: String? = null
override var bugtrackerUrl: String? = null
@@ -7,7 +7,7 @@ import org.jetbrains.annotations.ApiStatus
@ApiStatus.Internal
@Serializable
class ApplyPluginsStateResult {
val pluginsToEnable: MutableSet<PluginId> = HashSet()
data class ApplyPluginsStateResult(
val pluginsToEnable: Set<PluginId> = emptySet(),
var needRestart: Boolean = false
}
)
@@ -5,7 +5,9 @@ import com.intellij.ide.plugins.api.PluginDto
import com.intellij.ide.plugins.newui.PluginUiModel
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import org.jetbrains.annotations.ApiStatus
@ApiStatus.Internal
@Serializable
data class PluginSearchResult(
@Transient val pluginModels: List<PluginUiModel> = emptyList(),
@@ -22,6 +22,7 @@ object MarketplaceUrls {
@JvmStatic
fun getPluginManagerUrl() = MarketplaceCustomizationService.getInstance().getPluginManagerUrl().trimEnd('/')
@JvmStatic
fun getPluginManagerHost() = URL(getPluginManagerUrl()).host!!
@@ -79,8 +80,8 @@ object MarketplaceUrls {
fun getPluginReviewNoteUrl() = "${getPluginManagerUrl()}/docs/marketplace/reviews-policy.html" // plugin manager url?
@JvmStatic
fun getPluginWriteReviewUrl(pluginManagerUrl: String, pluginId: PluginId, version: String?): String = buildString {
append("${pluginManagerUrl}/intellij/${pluginId.urlEncode()}/review/new")
fun getPluginWriteReviewUrl(pluginId: PluginId, version: String? = null): String = buildString {
append("${getPluginManagerUrl()}/intellij/${pluginId.urlEncode()}/review/new")
append("?build=$IDE_BUILD_FOR_REQUEST")
version?.let {
append("&version=$it")
@@ -92,7 +93,7 @@ object MarketplaceUrls {
descriptor: IdeaPluginDescriptor,
uuid: String,
buildNumber: BuildNumber?,
currentVersion: IdeaPluginDescriptor?
currentVersion: IdeaPluginDescriptor?,
): String {
val updatedFrom = currentVersion?.version ?: ""
val parameters = hashMapOf(
@@ -119,13 +119,12 @@ object DefaultUiPluginManagerController : UiPluginManagerController {
override fun applySession(sessionId: String, parent: JComponent?, project: Project?): ApplyPluginsStateResult {
var needRestart = false
val applyResult = ApplyPluginsStateResult()
val session = findSession(sessionId) ?: return applyResult
val session = findSession(sessionId) ?: return ApplyPluginsStateResult()
if (ApplicationManager.getApplication().isExitInProgress) {
needRestart = true
}
val pluginIdMap = buildPluginIdMap()
applyResult.pluginsToEnable.addAll(updatePluginDependencies(session, pluginIdMap))
val pluginsToEnable = updatePluginDependencies(session, pluginIdMap)
assertCanApply(session, pluginIdMap)
val pluginEnabler = PluginEnabler.getInstance()
@@ -186,8 +185,7 @@ object DefaultUiPluginManagerController : UiPluginManagerController {
}
session.isUiDisposedWithApply = true
applyResult.needRestart = needRestart
return applyResult
return ApplyPluginsStateResult(pluginsToEnable, needRestart)
}
override suspend fun resetSession(sessionId: String, removeSession: Boolean, parentComponent: JComponent?): Map<PluginId, Boolean> {
@@ -492,10 +490,6 @@ object DefaultUiPluginManagerController : UiPluginManagerController {
return MarketplaceRequests.getInstance().loadPluginMetadata(externalPluginId)
}
override fun getPluginManagerUrl(): String {
return MarketplaceUrls.getPluginManagerUrl()
}
override fun getLastCompatiblePluginUpdateModel(pluginId: PluginId, buildNumber: String?, indicator: ProgressIndicator?): PluginUiModel? {
return MarketplaceRequests.getInstance().getLastCompatiblePluginUpdateModel(pluginId, BuildNumber.fromString(buildNumber), indicator)
}
@@ -534,8 +534,7 @@ class PluginDetailsPageComponent @JvmOverloads constructor(
newReviewLink.showWithBrowseUrl(IdeBundle.message("plugins.new.review.action"), false) {
val pluginUiModel = plugin!!
val installedPlugin = pluginManager.getPlugin(pluginUiModel.pluginId)
val pluginManagerUrl = pluginManager.getPluginManagerUrl()
getPluginWriteReviewUrl(pluginManagerUrl, pluginUiModel.pluginId, installedPlugin?.version)
getPluginWriteReviewUrl(pluginUiModel.pluginId, installedPlugin?.version)
}
val notePanel: JPanel = Wrapper(
@@ -647,7 +646,7 @@ class PluginDetailsPageComponent @JvmOverloads constructor(
if (component == null) {
installedDescriptorForMarketplace = null
updateDescriptor = installedDescriptorForMarketplace
plugin = null
plugin = updateDescriptor
select(1, true)
setEmptyState(if (multiSelection) EmptyState.MULTI_SELECT else EmptyState.NONE_SELECTED)
}
@@ -92,6 +92,10 @@ interface PluginUiModel {
var externalUpdateId: String?
var defaultTrialPeriod: Int?
var customTrialPeriods: Map<String, Int>?
/**
* Date of the last plugin update
*/
var date: Long
var suggestedFeatures: Collection<String>
@@ -220,10 +220,6 @@ class UiPluginManager {
return getController().loadPluginMetadata(externalPluginId)
}
fun getPluginManagerUrl(): String {
return getController().getPluginManagerUrl()
}
fun getAllPluginsTags(): Set<String> {
return getController().getAllPluginsTags()
}
@@ -34,7 +34,6 @@ interface UiPluginManagerController {
fun loadPluginDetails(xmlId: String, ideCompatibleUpdate: IdeCompatibleUpdate, indicator: ProgressIndicator? = null): PluginUiModel
fun loadPluginReviews(pluginId: PluginId, page: Int): List<PluginReviewComment>?
fun loadPluginMetadata(externalPluginId: String): IntellijPluginMetadata?
fun getPluginManagerUrl(): String
fun createSession(sessionId: String)
fun closeSession(sessionId: String)
fun unloadDynamicPlugin(parentComponent: JComponent?, pluginId: PluginId, isUpdate: Boolean): Boolean
@@ -97,7 +97,7 @@ class BackendPluginInstallerApi : PluginInstallerApi {
FileUtil.delete(pluginDescriptor.getPluginPath())
}
catch (e: IOException) {
LOG.debug(e);
LOG.warn(e);
}
}
@@ -131,10 +131,6 @@ class BackendPluginManagerApi : PluginManagerApi {
return DefaultUiPluginManagerController.loadPluginMetadata(externalPluginId)
}
override suspend fun getPluginManagerUrl(): String {
return DefaultUiPluginManagerController.getPluginManagerUrl()
}
override suspend fun getAllPluginsTags(): Set<String> {
return DefaultUiPluginManagerController.getAllPluginsTags()
}
@@ -189,10 +189,6 @@ class BackendUiPluginManagerController() : UiPluginManagerController {
return awaitForResult { PluginManagerApi.getInstance().loadPluginMetadata(externalPluginId) }
}
override fun getPluginManagerUrl(): String {
return awaitForResult { PluginManagerApi.getInstance().getPluginManagerUrl() }
}
override fun getAllPluginsTags(): Set<String> {
return awaitForResult { PluginManagerApi.getInstance().getAllPluginsTags() }
}
@@ -242,7 +238,7 @@ class BackendUiPluginManagerController() : UiPluginManagerController {
}
@Deprecated("Test method ")
fun <T> awaitForResult(body: suspend () -> T): T {
private fun <T> awaitForResult(body: suspend () -> T): T {
val deferred = CompletableDeferred<T>()
service<BackendRpcCoroutineContext>().coroutineScope.launch {
deferred.complete(body())
@@ -35,7 +35,6 @@ interface PluginManagerApi : RemoteApi<Unit> {
suspend fun loadMetadata(xmlId: String, ideCompatibleUpdate: IdeCompatibleUpdate): PluginDto
suspend fun loadPluginReviews(pluginId: PluginId, page: Int): List<PluginReviewComment>?
suspend fun loadPluginMetadata(externalPluginId: String): IntellijPluginMetadata?
suspend fun getPluginManagerUrl(): String
suspend fun getAllPluginsTags(): Set<String>
suspend fun getAllVendors(): Set<String>
suspend fun updateDescriptorsForInstalledPlugins()