diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties index 5ff4c819a984..c167fa63c33e 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties @@ -959,8 +959,8 @@ unnecessary.this.problem.descriptor=#ref is unnecessary in this con unnecessary.block.statement.problem.descriptor=Braces around this statement are unnecessary #loc unnecessary.continue.problem.descriptor=#ref is unnecessary as the last statement in a loop #loc unnecessary.semicolon.problem.descriptor=Unnecessary semicolon #ref #loc -unnecessary.fully.qualified.name.problem.descriptor1=Fully qualified name #ref is unnecessary, and can be replaced with an import #loc -unnecessary.fully.qualified.name.problem.descriptor2=Fully qualified name #ref is unnecessary, and the qualification can be removed #loc +unnecessary.fully.qualified.name.problem.descriptor1=Qualifier #ref is unnecessary, and can be replaced with an import #loc +unnecessary.fully.qualified.name.problem.descriptor2=Qualifier #ref is unnecessary and can be removed #loc unnecessary.qualifier.for.this.problem.descriptor=Qualifier #ref on 'this' is unnecessary in this context #loc unused.label.problem.descriptor=Unused label #ref #loc redundant.field.initialization.problem.descriptor=Field initialization to #ref is redundant #loc @@ -1368,8 +1368,7 @@ redundant.implements.remove.quickfix=Remove redundant interface declaration unnecessary.constructor.remove.quickfix=Remove redundant constructor unnecessary.fully.qualified.name.replace.quickfix=Replace with import unnecessary.fully.qualified.name.remove.quickfix=Remove qualification -unnecessary.fully.qualified.name.status.bar.escape.highlighting.message1=1 fully qualified name replaced with import (press Escape to remove highlighting) -unnecessary.fully.qualified.name.status.bar.escape.highlighting.message2={0} fully qualified names replaced with import (press Escape to remove highlighting) +unnecessary.fully.qualified.name.status.bar.escape.highlighting.message={0} fully qualified {0, choice, 1#name|2#names} replaced with import (press Escape to remove highlighting) unnecessary.parentheses.remove.quickfix=Remove unnecessary parentheses unnecessary.qualifier.for.this.remove.quickfix=Remove unnecessary qualifier unnecessary.semicolon.remove.quickfix=Remove unnecessary semicolon diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryFullyQualifiedNameInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryFullyQualifiedNameInspection.java index 9961a7103f18..0db4c4a75592 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryFullyQualifiedNameInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryFullyQualifiedNameInspection.java @@ -17,6 +17,7 @@ package com.siyeh.ig.style; import com.intellij.codeInspection.CleanupLocalInspectionTool; import com.intellij.codeInspection.ProblemDescriptor; +import com.intellij.codeInspection.ProblemHighlightType; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.openapi.wm.StatusBar; @@ -88,17 +89,14 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl @Override @NotNull public String getName() { - if (inSameFile) { - return InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.remove.quickfix"); - } - else { - return InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.replace.quickfix"); - } + return inSameFile + ? InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.remove.quickfix") + : InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.replace.quickfix"); } @Override public void doFix(Project project, ProblemDescriptor descriptor) throws IncorrectOperationException { - final PsiJavaCodeReferenceElement referenceElement = (PsiJavaCodeReferenceElement)descriptor.getPsiElement(); + final PsiJavaCodeReferenceElement referenceElement = (PsiJavaCodeReferenceElement)descriptor.getPsiElement().getParent(); final PsiFile file = referenceElement.getContainingFile(); final PsiElement target = referenceElement.resolve(); if (!(target instanceof PsiClass)) { @@ -122,25 +120,19 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl if (statusBar == null) { return; } - if (elementCount == 1) { - statusBar.setInfo(InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.status.bar.escape.highlighting.message1")); - } - else { - statusBar.setInfo(InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.status.bar.escape.highlighting.message2", - Integer.valueOf(elementCount - 1))); - } + statusBar.setInfo(InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.status.bar.escape.highlighting.message", + elementCount)); } private static class QualificationRemover extends JavaRecursiveElementVisitor { - private final String fullyQualifiedText; - private final List shortenedElements = new ArrayList(); + private final List shortenedElements = new ArrayList(); - QualificationRemover(String fullyQualifiedText) { + private QualificationRemover(String fullyQualifiedText) { this.fullyQualifiedText = fullyQualifiedText; } - public Collection getShortenedElements() { + private Collection getShortenedElements() { return Collections.unmodifiableCollection(shortenedElements); } @@ -224,7 +216,7 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl if (!(qualifierTarget instanceof PsiPackage)) { return; } - final List references = new ArrayList(2); + List references = new ArrayList(2); references.add(reference); if (styleSettings.INSERT_INNER_CLASS_IMPORTS) { collectInnerClassNames(reference, references); @@ -244,7 +236,7 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl continue; } final boolean inSameFile = aClass.getContainingFile() == containingFile; - registerError(aReference, Boolean.valueOf(inSameFile)); + registerError(aReference.getQualifier(), ProblemHighlightType.LIKE_UNUSED_SYMBOL, inSameFile); break; } } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fqn_javadoc_fully_qualify_if_not_imported/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fqn_javadoc_fully_qualify_if_not_imported/expected.xml index 05706352d657..a29c5c897b0e 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fqn_javadoc_fully_qualify_if_not_imported/expected.xml +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fqn_javadoc_fully_qualify_if_not_imported/expected.xml @@ -5,7 +5,7 @@ DoubleQualify.java 4 Unnecessary fully qualified name - Fully qualified name <code>java.util.HashMap</code> is unnecessary, and can be replaced with an import #loc + Qualifier <code>java.util</code> is unnecessary, and can be replaced with an import #loc \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fully_qualified_name/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fully_qualified_name/expected.xml index db2ec3219233..1e2e576ef57f 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fully_qualified_name/expected.xml +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fully_qualified_name/expected.xml @@ -5,49 +5,49 @@ UnnecessaryFullyQualifiedName.java 14 Unnecessary fully qualified name - Fully qualified name <code>java.util.List</code> is unnecessary, and can be replaced with an import #loc + Qualifier <code>java.util</code> is unnecessary, and can be replaced with an import #loc UnnecessaryFullyQualifiedName.java 15 Unnecessary fully qualified name - Fully qualified name <code>java.util.Map</code> is unnecessary, and can be replaced with an import #loc + Qualifier <code>java.util</code> is unnecessary, and can be replaced with an import #loc UnnecessaryFullyQualifiedName.java 17 Unnecessary fully qualified name - Fully qualified name <code>java.lang.System</code> is unnecessary, and can be replaced with an import #loc + Qualifier <code>java.lang</code> is unnecessary, and can be replaced with an import #loc UnnecessaryFullyQualifiedName.java 18 Unnecessary fully qualified name - Fully qualified name <code>java.lang.System</code> is unnecessary, and can be replaced with an import #loc + Qualifier <code>java.lang</code> is unnecessary, and can be replaced with an import #loc UnnecessaryFullyQualifiedName.java 41 Unnecessary fully qualified name - Fully qualified name <code>java. util. List</code> is unnecessary, and can be replaced with an import #loc + Qualifier <code>java. util</code> is unnecessary, and can be replaced with an import #loc UnnecessaryFQNJavadoc.java 4 Unnecessary fully qualified name - Fully qualified name <code>java.util.Map</code> is unnecessary, and can be replaced with an import #loc + Qualifier <code>java.util</code> is unnecessary, and can be replaced with an import #loc UnnecessaryFQNJavadoc.java 5 Unnecessary fully qualified name - Fully qualified name <code>java.util.HashMap</code> is unnecessary, and can be replaced with an import #loc + Qualifier <code>java.util</code> is unnecessary, and can be replaced with an import #loc