From 65ba5b7cb1aeeafb8226993f1cd6782eebe7c70e Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Fri, 7 Nov 2014 14:59:41 +0300 Subject: [PATCH] IDEA-126416 Suppress XmlUnusedNamespaceDeclaration --- .../com/intellij/refactoring/XmlImportOptimizer.java | 4 ++++ xml/tests/src/com/intellij/xml/XmlNamespacesTest.java | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/xml/impl/src/com/intellij/refactoring/XmlImportOptimizer.java b/xml/impl/src/com/intellij/refactoring/XmlImportOptimizer.java index fe78e55df189..2e02abcd071f 100644 --- a/xml/impl/src/com/intellij/refactoring/XmlImportOptimizer.java +++ b/xml/impl/src/com/intellij/refactoring/XmlImportOptimizer.java @@ -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() { diff --git a/xml/tests/src/com/intellij/xml/XmlNamespacesTest.java b/xml/tests/src/com/intellij/xml/XmlNamespacesTest.java index c38ce07bc1e2..90e1cdd3310d 100644 --- a/xml/tests/src/com/intellij/xml/XmlNamespacesTest.java +++ b/xml/tests/src/com/intellij/xml/XmlNamespacesTest.java @@ -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 = ""; + 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();