diff --git a/plugins/devkit/intellij.devkit.gradle/src/IntelliJPlatformAttachSourcesProvider.kt b/plugins/devkit/intellij.devkit.gradle/src/IntelliJPlatformAttachSourcesProvider.kt index 95bb7c32e9c2..007d51743043 100644 --- a/plugins/devkit/intellij.devkit.gradle/src/IntelliJPlatformAttachSourcesProvider.kt +++ b/plugins/devkit/intellij.devkit.gradle/src/IntelliJPlatformAttachSourcesProvider.kt @@ -57,15 +57,18 @@ internal class IntelliJPlatformAttachSourcesProvider : AttachSourcesProvider { ?: IntelliJPlatformProduct.fromCdnCoordinates(coordinates.groupId, coordinates.artifactId) return when { - // IntelliJ Platform dependency, such as `com.jetbrains.intellij.idea:ideaIC:2023.2.7` or `idea:ideaIC:2023.2.7` + // IntelliJ Platform dependency, such as `com.jetbrains.intellij.idea:ideaIC:2023.2.7`, `idea:ideaIC:aarch64:2024.3`, or `idea:ideaIC:2023.2.7` product != null -> resolveIntelliJPlatformAction(psiFile, coordinates.version) // IntelliJ Platform bundled plugin, such as `localIde:IC:2023.2.7+445` coordinates.groupId == "localIde" -> createAttachLocalPlatformSourcesAction(psiFile, coordinates) - // IntelliJ Platform bundled plugin, such as `bundledPlugin:Git4Idea:2023.2.7+445` + // IntelliJ Platform bundled plugin, such as `bundledPlugin:org.intellij.groovy:IC-243.21565.193`, `bundledPlugin:Git4Idea:2023.2.7+445` coordinates.groupId == "bundledPlugin" -> createAttachBundledPluginSourcesAction(psiFile, coordinates) + // IntelliJ Platform bundled module, such as `bundledModule:intellij.platform.coverage:IC-243.21565.193` + coordinates.groupId == "bundledModule" -> createAttachBundledModuleSourcesAction(psiFile, coordinates) + else -> null } } @@ -120,6 +123,15 @@ internal class IntelliJPlatformAttachSourcesProvider : AttachSourcesProvider { createAttachSourcesArchiveAction(psiFile, ApiSourceArchive.entries.firstOrNull { it.id == coordinates.artifactId }) ?: resolveIntelliJPlatformAction(psiFile, coordinates.version.substringAfter('-').substringBefore('+')) + /** + * Creates an action to attach sources of bundled modules for the IntelliJ Platform. + * + * @param psiFile The PSI file that represents the currently handled class. + * @param coordinates The Maven coordinates of the bundled module whose sources need to be attached. + */ + private fun createAttachBundledModuleSourcesAction(psiFile: PsiFile, coordinates: MavenCoordinates) = + createAttachBundledPluginSourcesAction(psiFile, coordinates) + /** * Attach the provided sources archive. *