mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-88723 "Run inspection by name" runs all inspections instead of a selected one
This commit is contained in:
@@ -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();
|
||||
|
||||
+6
-1
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user