IJPL-193279: Provide a way to quickly find where the current content module is registered - improve the tooltip label

GitOrigin-RevId: 10601ca777922591f5b4f82155c11cbd9e618d40
This commit is contained in:
Karol Lewandowski
2025-06-28 00:56:12 +00:00
committed by intellij-monorepo-bot
parent d6f9dd0cc1
commit 1750d17df6
3 changed files with 8 additions and 4 deletions
@@ -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
@@ -70,11 +70,12 @@ internal class DescriptorsIncludingContentModuleLineMarkerProvider : DevkitRelat
leaf: PsiElement,
contentEntries: List<ModuleDescriptor>,
): RelatedItemLineMarkerInfo<PsiElement> {
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)
}
@@ -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 | <module name=\"test.module\"/>"
)
@@ -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 | <module name=\"test.module\"/>",
"declaring.module.2.xml | <module name=\"test.module\"/>"
@@ -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 | <module name=\"test.module\" loading=\"embedded\"/>",
"declaring.module.2.xml | <module name=\"test.module\" loading=\"on-demand\"/>"
@@ -156,11 +159,11 @@ class DescriptorsIncludingContentModuleLineMarkerProviderTest : JavaCodeInsightF
myFixture.addFileToProject("$moduleName/$moduleDescriptorName", moduleDescriptorText)
}
private fun testGutterTargets(testFileRelPath: String, expectedTargets: List<String>) {
private fun testGutterTargets(testFileRelPath: String, popupTitle: String, expectedTargets: List<String>) {
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()