[devkit] InspectionDescriptionInfo: take case-sensitivity into account always (IJPL-171278)

GitOrigin-RevId: 00dd56423d214efe5fb686b51fc6538edcb2ab69
This commit is contained in:
Yann Cébron
2024-12-10 10:50:54 +00:00
committed by intellij-monorepo-bot
parent d677b32136
commit 97fff59b78
3 changed files with 17 additions and 5 deletions
@@ -145,7 +145,9 @@ public final class InspectionDescriptionInfo {
String nameWithSuffix = filename + ".html";
return DescriptionCheckerUtil.allDescriptionDirs(module, DescriptionType.INSPECTION)
.map(directory -> directory.findFile(nameWithSuffix)).nonNull().findFirst().orElse(null);
.map(directory -> directory.findFile(nameWithSuffix))
.map(directory -> directory != null && directory.getName().equals(nameWithSuffix) ? directory : null)
.nonNull().findFirst().orElse(null);
}
public boolean isValid() {
@@ -0,0 +1,3 @@
import com.intellij.codeInspection.LocalInspectionTool;
class My<caret>withDescriptionInspection extends LocalInspectionTool {}
@@ -1,4 +1,4 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.idea.devkit.navigation;
import com.intellij.codeInsight.daemon.GutterMark;
@@ -32,20 +32,27 @@ public class DescriptionTypeRelatedItemLineMarkerProviderTest extends Descriptio
doTestInspectionDescription("MyWithDescriptionFromFieldReferenceInspection.java", "MyWithDescriptionFromFieldReferenceInspection.html");
}
public void testInspectionDescriptionNameShouldBeEqualToClassNameNotIgnoringCase() {
myFixture.copyDirectoryToProject("inspectionDescriptions", "inspectionDescriptions");
List<GutterMark> gutters = myFixture.findAllGutters("caseSensitive/MywithDescriptionInspection.java");
assertEmpty(gutters);
}
public void testIntentionDescription() {
myFixture.copyDirectoryToProject("intentionDescriptions", "intentionDescriptions");
List<GutterMark> gutters = ContainerUtil.sorted(myFixture.findAllGutters("MyIntentionActionWithDescription.java"),Comparator.comparing(GutterMark::getTooltipText));
List<GutterMark> gutters = ContainerUtil.sorted(myFixture.findAllGutters("MyIntentionActionWithDescription.java"),
Comparator.comparing(GutterMark::getTooltipText));
assertThat(gutters.size()).isEqualTo(2);
DevKitGutterTargetsChecker.checkGutterTargets(gutters.get(1), "Description", DevKitIcons.Gutter.DescriptionFile, "description.html");
DevKitGutterTargetsChecker.checkGutterTargets(gutters.get(0), "Before/After Templates", DevKitIcons.Gutter.Diff,
"after.java.template", "before.java.template");
}
public void testIntentionDescriptionFolderNameShouldBeEqualToClassNameNotIgnoringCase() {
myFixture.copyDirectoryToProject("intentionDescriptions", "intentionDescriptions");
List<GutterMark> gutters = myFixture.findAllGutters("caseSensitive/MyIntentionActionwithDescription.java");
assertThat(gutters.size()).isEqualTo(0);
assertEmpty(gutters);
}
}