IDEA-126416 Suppress XmlUnusedNamespaceDeclaration

This commit is contained in:
Dmitry Avdeev
2014-11-07 15:01:13 +03:00
parent ca6951a3bc
commit 65ba5b7cb1
2 changed files with 14 additions and 1 deletions
@@ -15,6 +15,7 @@
*/
package com.intellij.refactoring;
import com.intellij.codeInsight.daemon.HighlightDisplayKey;
import com.intellij.codeInsight.daemon.impl.analysis.XmlUnusedNamespaceInspection;
import com.intellij.codeInspection.InspectionManager;
import com.intellij.codeInspection.ProblemDescriptor;
@@ -23,6 +24,7 @@ import com.intellij.codeInspection.QuickFix;
import com.intellij.lang.ImportOptimizer;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Condition;
import com.intellij.profile.codeInspection.InspectionProjectProfileManager;
import com.intellij.psi.*;
import com.intellij.psi.xml.XmlAttribute;
import com.intellij.psi.xml.XmlFile;
@@ -64,6 +66,8 @@ public class XmlImportOptimizer implements ImportOptimizer {
public void run() {
XmlFile xmlFile = (XmlFile)file;
Project project = xmlFile.getProject();
HighlightDisplayKey key = HighlightDisplayKey.find(myInspection.getShortName());
if (!InspectionProjectProfileManager.getInstance(project).getInspectionProfile().isToolEnabled(key, xmlFile)) return;
ProblemsHolder holder = new ProblemsHolder(InspectionManager.getInstance(project), xmlFile, false);
final XmlElementVisitor visitor = (XmlElementVisitor)myInspection.buildVisitor(holder, false);
new PsiRecursiveElementVisitor() {
@@ -19,11 +19,13 @@ import com.intellij.codeInsight.actions.OptimizeImportsProcessor;
import com.intellij.codeInsight.daemon.impl.analysis.XmlUnusedNamespaceInspection;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.codeInspection.htmlInspections.XmlInspectionToolProvider;
import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.javaee.ExternalResourceManagerExImpl;
import com.intellij.openapi.application.Result;
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.testFramework.IdeaTestCase;
import com.intellij.testFramework.fixtures.CodeInsightFixtureTestCase;
import org.jetbrains.annotations.NotNull;
/**
* @author Dmitry Avdeev
@@ -235,6 +237,13 @@ public class XmlNamespacesTest extends CodeInsightFixtureTestCase {
myFixture.testHighlighting("import.xml", "import.xsd");
}
public void testDoNotOptimizeWhenInspectionDisabled() throws Exception {
myFixture.disableInspections(new XmlUnusedNamespaceInspection());
String text = "<all xmlns=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>";
myFixture.configureByText(XmlFileType.INSTANCE, text);
doOptimizeImportsTest(text);
}
private void doUnusedDeclarationTest(String text, String after, String name) throws Exception {
doUnusedDeclarationTest(text, after, name, true);
}
@@ -257,7 +266,7 @@ public class XmlNamespacesTest extends CodeInsightFixtureTestCase {
myFixture.testHighlighting();
new WriteCommandAction(getProject(), getFile()) {
@Override
protected void run(Result result) throws Throwable {
protected void run(@NotNull Result result) throws Throwable {
new OptimizeImportsProcessor(getProject(), getFile()).runWithoutProgress();
}
}.execute();