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")
}
fun IntelliJPlatformDependenciesExtension.pluginInLatestCompatibleVersion(vararg pluginId: String) =
plugin(provider {
val platformType = intellijPlatform.productInfo.productCode
val platformVersion = intellijPlatform.productInfo.buildNumber
fun IntelliJPlatformDependenciesExtension.pluginsInLatestCompatibleVersion(vararg pluginIds: String) =
plugins(provider {
pluginIds.map { pluginId ->
val platformType = intellijPlatform.productInfo.productCode
val platformVersion = intellijPlatform.productInfo.buildNumber
val plugin = pluginRepository.pluginManager.searchCompatibleUpdates(
build = "$platformType-$platformVersion",
xmlIds = listOf(pluginId),
).firstOrNull()
?: throw GradleException("No plugin update with id='$pluginId' compatible with '$platformType-$platformVersion' found in JetBrains Marketplace")
val plugin = pluginRepository.pluginManager.searchCompatibleUpdates(
build = "$platformType-$platformVersion",
xmlIds = listOf(pluginId),
).firstOrNull()
?: 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 {
@ -338,7 +340,7 @@ dependencies {
intellijPlatform {
// ...
pluginInLatestCompatibleVersion("org.coffeescript")
pluginsInLatestCompatibleVersion("org.coffeescript", ...)
}
}
```