mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-05 01:50:56 +07:00
tweak(JavaDoc): Disable some inspections on older javadoc
Some inspections are pointless to check, related to javadoc tags. GitOrigin-RevId: b7bb8bba4b51f1d90678705af3da8e5e5c4a4907
This commit is contained in:
committed by
intellij-monorepo-bot
parent
b3d3481ecb
commit
d4e45d6061
@@ -127,7 +127,7 @@ public final class DanglingJavadocInspection extends BaseInspection {
|
||||
@Override
|
||||
public void visitDocComment(@NotNull PsiDocComment comment) {
|
||||
super.visitDocComment(comment);
|
||||
if (JavaDocUtil.isDanglingDocComment(comment, ignoreCopyright)) {
|
||||
if (JavaDocUtil.shouldRunInspectionOnOldMarkdownComment(comment) && JavaDocUtil.isDanglingDocComment(comment, ignoreCopyright)) {
|
||||
registerError(comment.getFirstChild(), comment.isMarkdownComment());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.siyeh.ig.javadoc;
|
||||
|
||||
import com.intellij.codeInspection.*;
|
||||
import com.intellij.codeInsight.javadoc.JavaDocUtil;
|
||||
import com.intellij.codeInspection.CleanupLocalInspectionTool;
|
||||
import com.intellij.codeInspection.CommonQuickFixBundle;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.modcommand.ModCommand;
|
||||
import com.intellij.modcommand.ModCommandQuickFix;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
@@ -104,7 +108,7 @@ public final class HtmlTagCanBeJavadocTagInspection extends BaseInspection imple
|
||||
public void visitDocToken(@NotNull PsiDocToken token) {
|
||||
super.visitDocToken(token);
|
||||
final IElementType tokenType = token.getTokenType();
|
||||
if (!JavaDocTokenType.DOC_COMMENT_DATA.equals(tokenType)) {
|
||||
if (!JavaDocTokenType.DOC_COMMENT_DATA.equals(tokenType) || !JavaDocUtil.shouldRunInspectionOnOldMarkdownComment(token)) {
|
||||
return;
|
||||
}
|
||||
@NonNls final String text = token.getText();
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.siyeh.ig.javadoc;
|
||||
|
||||
import com.intellij.codeInsight.javadoc.JavaDocUtil;
|
||||
import com.intellij.codeInspection.CleanupLocalInspectionTool;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.options.OptPane;
|
||||
@@ -226,7 +227,7 @@ final class MissingDeprecatedAnnotationInspection extends BaseInspection impleme
|
||||
|
||||
private static boolean hasDeprecatedComment(PsiJavaDocumentedElement documentedElement, boolean checkContent) {
|
||||
final PsiDocComment comment = documentedElement.getDocComment();
|
||||
if (comment == null) {
|
||||
if (comment == null || !JavaDocUtil.shouldRunInspectionOnOldMarkdownComment(comment)) {
|
||||
return false;
|
||||
}
|
||||
final PsiDocTag deprecatedTag = comment.findTagByName("deprecated");
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.intellij.openapi.project.IndexNotReadyException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.NlsSafe;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaFileCodeStyleFacade;
|
||||
import com.intellij.psi.impl.source.javadoc.PsiDocMethodOrFieldRef;
|
||||
@@ -16,6 +17,8 @@ import com.intellij.psi.templateLanguages.TemplateLanguageUtil;
|
||||
import com.intellij.psi.util.*;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -434,4 +437,24 @@ public final class JavaDocUtil {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Whether the inspections should be run for the given comment
|
||||
* Markdown format is allowed for java < 23. However, due to old (sometimes generated) code starting with 3 slashes,
|
||||
* we should not run the inspections on dangling comments.
|
||||
*/
|
||||
@Contract("null -> false")
|
||||
public static boolean shouldRunInspectionOnOldMarkdownComment(@Nullable PsiDocComment comment) {
|
||||
if (comment == null) return false;
|
||||
if (!comment.isMarkdownComment()) return true;
|
||||
PsiJavaFile file = ObjectUtils.tryCast(comment.getContainingFile(), PsiJavaFile.class);
|
||||
if (file == null) return false;
|
||||
|
||||
if (file.getLanguageLevel().isAtLeast(LanguageLevel.JDK_23)) return true;
|
||||
return !isDanglingDocComment(comment, true);
|
||||
}
|
||||
|
||||
public static boolean shouldRunInspectionOnOldMarkdownComment(@NotNull PsiElement element) {
|
||||
return shouldRunInspectionOnOldMarkdownComment(PsiTreeUtil.getParentOfType(element, PsiDocComment.class, false, PsiMember.class));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public class DanglingJavadocInspectionTest extends LightJavaInspectionTestCase {
|
||||
@NotNull
|
||||
@Override
|
||||
protected LightProjectDescriptor getProjectDescriptor() {
|
||||
return JAVA_9;
|
||||
return JAVA_23;
|
||||
}
|
||||
|
||||
public void testDanglingJavadoc() {
|
||||
|
||||
Reference in New Issue
Block a user