IDEA-88723 "Run inspection by name" runs all inspections instead of a selected one

This commit is contained in:
Dmitry Avdeev
2012-07-19 16:03:14 +04:00
parent efcc0339bd
commit 3c52add68f
3 changed files with 21 additions and 1 deletions
@@ -18,8 +18,12 @@ package com.intellij.codeInspection;
import com.intellij.JavaTestUtil;
import com.intellij.analysis.AnalysisScope;
import com.intellij.codeInsight.CodeInsightTestCase;
import com.intellij.codeInspection.actions.RunInspectionIntention;
import com.intellij.codeInspection.ex.*;
import com.intellij.codeInspection.visibility.VisibilityInspection;
import com.intellij.profile.codeInspection.InspectionProfileManager;
import java.util.ArrayList;
/**
* @author Dmitry Avdeev
@@ -50,6 +54,14 @@ public class GlobalInspectionContextTest extends CodeInsightTestCase {
assertEquals(1, tool.getProblemDescriptors().size());
}
public void testRunInspectionContext() throws Exception {
InspectionProfileEntry tool =
((InspectionProfile)InspectionProfileManager.getInstance().getRootProfile()).getInspectionTool("CanBeFinal");
GlobalInspectionContextImpl context = RunInspectionIntention.createContext(tool, (InspectionManagerEx)InspectionManager.getInstance(myProject), null);
context.initializeTools(new ArrayList<Tools>(), new ArrayList<Tools>(), new ArrayList<Tools>());
assertEquals(1, context.getTools().size());
}
@Override
public void setUp() throws Exception {
super.setUp();
@@ -98,6 +98,11 @@ public class RunInspectionIntention implements IntentionAction, HighPriorityActi
public static void rerunInspection(final InspectionProfileEntry baseTool, final InspectionManagerEx managerEx, final AnalysisScope scope,
PsiElement psiElement) {
GlobalInspectionContextImpl inspectionContext = createContext(baseTool, managerEx, psiElement);
inspectionContext.doInspections(scope, managerEx);
}
public static GlobalInspectionContextImpl createContext(InspectionProfileEntry baseTool, InspectionManagerEx managerEx, PsiElement psiElement) {
final InspectionProfileImpl profile = new InspectionProfileImpl(baseTool.getDisplayName());
final InspectionProfileImpl model = (InspectionProfileImpl)profile.getModifiableModel();
model.disableAllTools();
@@ -113,7 +118,7 @@ public class RunInspectionIntention implements IntentionAction, HighPriorityActi
model.setEditable(baseTool.getDisplayName());
final GlobalInspectionContextImpl inspectionContext = managerEx.createNewGlobalContext(false);
inspectionContext.setExternalProfile(model);
inspectionContext.doInspections(scope, managerEx);
return inspectionContext;
}
public boolean startInWriteAction() {
@@ -493,6 +493,9 @@ public class InspectionProfileImpl extends ProfileEx implements ModifiableModel,
}
myTools.put(tool.getShortName(), toolsList);
}
if (mySource != null) {
copyToolsConfigurations(mySource, project);
}
return true;
}