inspection toolwindow: problem node can be amnestied and its siblings will be not affected

This commit is contained in:
Dmitry Batkovich
2016-06-07 15:31:43 +03:00
parent 8ede59c329
commit 69e33d2c3f
3 changed files with 9 additions and 2 deletions
@@ -360,6 +360,12 @@ public class DefaultInspectionToolPresentation implements ProblemDescriptionsPro
getIgnoredElements().remove(refEntity);
}
@Override
public void amnesty(RefEntity refEntity, CommonProblemDescriptor descriptor) {
final CommonProblemDescriptor[] ignoredDescriptors = getIgnoredElements().get(refEntity);
getIgnoredElements().put(refEntity, ArrayUtil.remove(ignoredDescriptors, descriptor));
}
@Override
public void ignoreProblem(RefEntity refEntity, CommonProblemDescriptor problem, int idx) {
if (refEntity == null) return;
@@ -57,6 +57,7 @@ public interface InspectionToolPresentation extends ProblemDescriptionsProcessor
void ignoreCurrentElement(RefEntity refEntity);
void amnesty(RefEntity refEntity);
void amnesty(RefEntity refEntity, CommonProblemDescriptor descriptor);
void cleanup();
void finalCleanup();
boolean isGraphNeeded();
@@ -132,9 +132,9 @@ public class ProblemDescriptionNode extends SuppressableInspectionTreeNode {
@Override
public void amnestyElement(ExcludedInspectionTreeNodesManager manager) {
if (!isAlreadySuppressedFromView() && !isQuickFixAppliedFromView()) {
if (!isAlreadySuppressedFromView()) {
InspectionToolPresentation presentation = getPresentation();
presentation.amnesty(getElement());
presentation.amnesty(getElement(), getDescriptor());
}
super.amnestyElement(manager);
}