From 1750d17df6bb32cd21b39b15293e5378f048ae3d Mon Sep 17 00:00:00 2001 From: Karol Lewandowski Date: Fri, 27 Jun 2025 14:16:25 +0200 Subject: [PATCH] IJPL-193279: Provide a way to quickly find where the current content module is registered - improve the tooltip label GitOrigin-RevId: 10601ca777922591f5b4f82155c11cbd9e618d40 --- .../devkit-core/resources/messages/DevKitBundle.properties | 2 +- .../DescriptorsIncludingContentModuleLineMarkerProvider.kt | 3 ++- ...criptorsIncludingContentModuleLineMarkerProviderTest.kt | 7 +++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/devkit/devkit-core/resources/messages/DevKitBundle.properties b/plugins/devkit/devkit-core/resources/messages/DevKitBundle.properties index 320a3708ba26..05c8e3e864a0 100644 --- a/plugins/devkit/devkit-core/resources/messages/DevKitBundle.properties +++ b/plugins/devkit/devkit-core/resources/messages/DevKitBundle.properties @@ -776,5 +776,5 @@ inspection.remote.dev.missing.runtime.dependency.message=The name of the current inspection.remote.dev.missing.runtime.dependency.fix.add=Add the ''{0}'' dependency line.marker.descriptors.including.content.module.name=Descriptors including this content module -line.marker.descriptors.including.content.module.tooltip=Descriptors including this content module +line.marker.descriptors.including.content.module.tooltip=''{0}'' content module is included in {1} plugin XML descriptors line.marker.descriptors.including.content.module.popup.title=Descriptors Including This Content Module diff --git a/plugins/devkit/devkit-core/src/navigation/DescriptorsIncludingContentModuleLineMarkerProvider.kt b/plugins/devkit/devkit-core/src/navigation/DescriptorsIncludingContentModuleLineMarkerProvider.kt index fb560d519ded..3c164616223b 100644 --- a/plugins/devkit/devkit-core/src/navigation/DescriptorsIncludingContentModuleLineMarkerProvider.kt +++ b/plugins/devkit/devkit-core/src/navigation/DescriptorsIncludingContentModuleLineMarkerProvider.kt @@ -70,11 +70,12 @@ internal class DescriptorsIncludingContentModuleLineMarkerProvider : DevkitRelat leaf: PsiElement, contentEntries: List, ): RelatedItemLineMarkerInfo { + val moduleName = leaf.containingFile.virtualFile.nameWithoutExtension return NavigationGutterIconBuilder.create(AllIcons.Nodes.Module, CONVERTER, RELATED_ITEM_PROVIDER) .setTargets(contentEntries) .setTargetRenderer { TargetRenderer() } .setPopupTitle(DevKitBundle.message("line.marker.descriptors.including.content.module.popup.title")) - .setTooltipText(DevKitBundle.message("line.marker.descriptors.including.content.module.tooltip")) + .setTooltipText(DevKitBundle.message("line.marker.descriptors.including.content.module.tooltip", moduleName, contentEntries.size)) .setAlignment(GutterIconRenderer.Alignment.RIGHT) .createLineMarkerInfo(leaf) } diff --git a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/DescriptorsIncludingContentModuleLineMarkerProviderTest.kt b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/DescriptorsIncludingContentModuleLineMarkerProviderTest.kt index 390cb029b636..3ad797f270fb 100644 --- a/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/DescriptorsIncludingContentModuleLineMarkerProviderTest.kt +++ b/plugins/devkit/devkit-java-tests/testSrc/org/jetbrains/idea/devkit/navigation/DescriptorsIncludingContentModuleLineMarkerProviderTest.kt @@ -38,6 +38,7 @@ class DescriptorsIncludingContentModuleLineMarkerProviderTest : JavaCodeInsightF testGutterTargets( testFileRelPath = "test.module/test.module.xml", + popupTitle = "'test.module' content module is included in 1 plugin XML descriptors", expectedTargets = listOf( "declaring.module.xml | " ) @@ -73,6 +74,7 @@ class DescriptorsIncludingContentModuleLineMarkerProviderTest : JavaCodeInsightF testGutterTargets( testFileRelPath = "test.module/test.module.xml", + popupTitle = "'test.module' content module is included in 2 plugin XML descriptors", expectedTargets = listOf( "declaring.module.1.xml | ", "declaring.module.2.xml | " @@ -109,6 +111,7 @@ class DescriptorsIncludingContentModuleLineMarkerProviderTest : JavaCodeInsightF testGutterTargets( testFileRelPath = "test.module/test.module.xml", + popupTitle = "'test.module' content module is included in 2 plugin XML descriptors", expectedTargets = listOf( "declaring.module.1.xml | ", "declaring.module.2.xml | " @@ -156,11 +159,11 @@ class DescriptorsIncludingContentModuleLineMarkerProviderTest : JavaCodeInsightF myFixture.addFileToProject("$moduleName/$moduleDescriptorName", moduleDescriptorText) } - private fun testGutterTargets(testFileRelPath: String, expectedTargets: List) { + private fun testGutterTargets(testFileRelPath: String, popupTitle: String, expectedTargets: List) { val gutter = myFixture.findGutter(testFileRelPath) DevKitGutterTargetsChecker.checkGutterTargets( gutter, - DevKitBundle.message("line.marker.descriptors.including.content.module.name"), + popupTitle, AllIcons.Nodes.Module, { renderTargetElement(it) }, *expectedTargets.toTypedArray()