mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Do not show "Unnecessary fully qualified name" warning in javadocs if "fully qualify when not imported" is selected and fqn is not imported (IDEA-136680)
This commit is contained in:
+11
-8
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.siyeh.ig.style;
|
||||
|
||||
import com.intellij.codeInsight.javadoc.JavaDocUtil;
|
||||
import com.intellij.codeInspection.CleanupLocalInspectionTool;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
@@ -26,6 +25,7 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleSettings;
|
||||
import com.intellij.psi.impl.source.codeStyle.ImportHelper;
|
||||
import com.intellij.psi.javadoc.PsiDocComment;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
@@ -206,11 +206,6 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl
|
||||
if (element != null) {
|
||||
return;
|
||||
}
|
||||
final CodeStyleSettings styleSettings = CodeStyleSettingsManager.getSettings(reference.getProject());
|
||||
PsiDocComment containingComment = PsiTreeUtil.getParentOfType(reference, PsiDocComment.class);
|
||||
if (containingComment != null && acceptFullyQualifiedNamesInJavadoc(containingComment, styleSettings)) {
|
||||
return;
|
||||
}
|
||||
final PsiFile containingFile = reference.getContainingFile();
|
||||
if (!(containingFile instanceof PsiJavaFile)) {
|
||||
return;
|
||||
@@ -219,6 +214,11 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl
|
||||
if (!(target instanceof PsiClass)) {
|
||||
return;
|
||||
}
|
||||
final CodeStyleSettings styleSettings = CodeStyleSettingsManager.getSettings(reference.getProject());
|
||||
PsiDocComment containingComment = PsiTreeUtil.getParentOfType(reference, PsiDocComment.class);
|
||||
if (containingComment != null && acceptFqnInJavadoc((PsiJavaFile)containingFile, reference.getQualifiedName(), styleSettings)) {
|
||||
return;
|
||||
}
|
||||
final PsiJavaCodeReferenceElement qualifierReference = (PsiJavaCodeReferenceElement)qualifier;
|
||||
final PsiElement qualifierTarget = qualifierReference.resolve();
|
||||
if (!(qualifierTarget instanceof PsiPackage)) {
|
||||
@@ -262,11 +262,14 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean acceptFullyQualifiedNamesInJavadoc(PsiDocComment comment, CodeStyleSettings styleSettings) {
|
||||
if (JavaDocUtil.isInsidePackageInfo(comment)) {
|
||||
private static boolean acceptFqnInJavadoc(PsiJavaFile javaFile, String fullyQualifiedName, CodeStyleSettings styleSettings) {
|
||||
if ("package-info.java".equals(javaFile.getName())) {
|
||||
return true;
|
||||
}
|
||||
JavaCodeStyleSettings javaSettings = styleSettings.getCustomSettings(JavaCodeStyleSettings.class);
|
||||
if (javaSettings.CLASS_NAMES_IN_JAVADOC == JavaCodeStyleSettings.FULLY_QUALIFY_NAMES_IF_NOT_IMPORTED) {
|
||||
return !ImportHelper.isAlreadyImported(javaFile, fullyQualifiedName);
|
||||
}
|
||||
return javaSettings.useFqNamesInJavadocAlways();
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* {@link java.util.HashMap}
|
||||
*/
|
||||
public class DoubleQualify {
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* {@link java.util.HashMap}
|
||||
*/
|
||||
public class Single {
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<problems>
|
||||
|
||||
<problem>
|
||||
<file>DoubleQualify.java</file>
|
||||
<line>4</line>
|
||||
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Unnecessary fully qualified name</problem_class>
|
||||
<description>Fully qualified name <code>java.util.HashMap</code> is unnecessary, and can be replaced with an import #loc</description>
|
||||
</problem>
|
||||
|
||||
</problems>
|
||||
+1
-1
@@ -10,7 +10,7 @@ public class UnnecessaryFullyQualifiedNameInspectionTest extends IGInspectionTes
|
||||
private static final String BASE_DIR = "com/siyeh/igtest/style/";
|
||||
|
||||
public void testFqnInJavadoc_Unnecessary_WhenFullyQualifyIfNotImported() throws Exception {
|
||||
doTestWithFqnInJavadocSetting(BASE_DIR + "unnecessary_fully_qualified_name/", JavaCodeStyleSettings.FULLY_QUALIFY_NAMES_IF_NOT_IMPORTED);
|
||||
doTestWithFqnInJavadocSetting(BASE_DIR + "unnecessary_fqn_javadoc_fully_qualify_if_not_imported", JavaCodeStyleSettings.FULLY_QUALIFY_NAMES_IF_NOT_IMPORTED);
|
||||
}
|
||||
|
||||
public void testFqnInJavadoc_Unnecessary_WhenShortNamesAlways() {
|
||||
|
||||
Reference in New Issue
Block a user