tools_intellij_platform_gradle_plugin_recipes.md: Resolve plugin from JetBrains Marketplace in the latest compatible version

This commit is contained in:
Jakub Chrzanowski 2025-03-19 23:21:01 +03:00
parent a84ea7040b
commit 2487bfcbb8
No known key found for this signature in database
GPG Key ID: 56E9E73CB8E7486B

View File

@ -319,18 +319,20 @@ val IntelliJPlatformDependenciesExtension.pluginRepository by lazy {
PluginRepositoryFactory.create("https://plugins.jetbrains.com") PluginRepositoryFactory.create("https://plugins.jetbrains.com")
} }
fun IntelliJPlatformDependenciesExtension.pluginInLatestCompatibleVersion(vararg pluginId: String) = fun IntelliJPlatformDependenciesExtension.pluginsInLatestCompatibleVersion(vararg pluginIds: String) =
plugin(provider { plugins(provider {
val platformType = intellijPlatform.productInfo.productCode pluginIds.map { pluginId ->
val platformVersion = intellijPlatform.productInfo.buildNumber val platformType = intellijPlatform.productInfo.productCode
val platformVersion = intellijPlatform.productInfo.buildNumber
val plugin = pluginRepository.pluginManager.searchCompatibleUpdates( val plugin = pluginRepository.pluginManager.searchCompatibleUpdates(
build = "$platformType-$platformVersion", build = "$platformType-$platformVersion",
xmlIds = listOf(pluginId), xmlIds = listOf(pluginId),
).firstOrNull() ).firstOrNull()
?: throw GradleException("No plugin update with id='$pluginId' compatible with '$platformType-$platformVersion' found in JetBrains Marketplace") ?: throw GradleException("No plugin update with id='$pluginId' compatible with '$platformType-$platformVersion' found in JetBrains Marketplace")
"${plugin.pluginXmlId}:${plugin.version}" "${plugin.pluginXmlId}:${plugin.version}"
}
}) })
dependencies { dependencies {
@ -338,7 +340,7 @@ dependencies {
intellijPlatform { intellijPlatform {
// ... // ...
pluginInLatestCompatibleVersion("org.coffeescript") pluginsInLatestCompatibleVersion("org.coffeescript", ...)
} }
} }
``` ```