[java-inspections] Minor fixes for IDEA-346242 Add 'minimal java version' clause automatically to inspection descriptions

1. Add features to assertion inspections
2. Remove redundant feature message from HTML descriptions
3. Display Java 1.3 and Java 1.4 version properly
4. Display several features when necessary

GitOrigin-RevId: 133b46152ad8376a37aa4fd847bedf38d45f3135
This commit is contained in:
Tagir Valeev
2024-04-04 15:15:00 +02:00
committed by intellij-monorepo-bot
parent 274b476799
commit f943967aec
17 changed files with 75 additions and 11 deletions

View File

@@ -624,5 +624,7 @@ intention.family.name.move.members.into.class=Move members into class
chooser.popup.title.select.class.to.move.members.to=Select Target Class
intention.family.name.move.members.to=Move members to {0}
inspection.name.can.be.replaced.with.long.hashcode=Standard 'hashCode()' method can be used
inspection.depends.on.the.java.feature=This inspection depends on the Java feature ''{0}'' which is available since Java {1}.
inspection.depends.on.the.java.feature=This inspection depends on the Java feature ''{0}'', which is available since Java {1}.
inspection.depends.on.the.java.features=This inspection depends on the following Java features:
inspection.depends.on.the.java.features.minimal.version=These features are available since Java {0}.
inspection.data.flow.warn.when.reading.a.value.guaranteed.to.be.constant=Warn when constant is stored in variable

View File

@@ -7,6 +7,7 @@ import com.intellij.pom.java.JavaFeature;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -39,6 +40,14 @@ public abstract class AbstractBaseJavaLocalInspectionTool extends LocalInspectio
feature.getFeatureName(), feature.getMinimumLevel().getShortText()))
.wrapWith("p");
}
else if (features.size() > 1) {
int minimalVersion = features.stream().mapToInt(f -> f.getMinimumLevel().feature()).max().getAsInt();
return HtmlChunk.p().children(
HtmlChunk.text(JavaAnalysisBundle.message("inspection.depends.on.the.java.features")),
HtmlChunk.ul().children(features.stream().map(JavaFeature::getFeatureName).sorted()
.map((@Nls String name) -> HtmlChunk.li().addText(name)).toList()),
HtmlChunk.text(JavaAnalysisBundle.message("inspection.depends.on.the.java.features.minimal.version", minimalVersion)));
}
return HtmlChunk.empty();
}