mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
magic constant: don't cancel batch inspections progress when write action starts
impatient reader will cancel existing progress whatever it is and in case of batch inspections this may cancel the whole progress
This commit is contained in:
+16
-1
@@ -7,6 +7,9 @@ import com.intellij.codeInsight.ExternalAnnotationsManager;
|
||||
import com.intellij.codeInsight.daemon.GroupNames;
|
||||
import com.intellij.codeInspection.*;
|
||||
import com.intellij.ide.util.treeView.AbstractTreeNode;
|
||||
import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.progress.util.ProgressIndicatorBase;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.projectRoots.SdkModificator;
|
||||
@@ -14,6 +17,7 @@ import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
|
||||
import com.intellij.openapi.roots.JdkUtils;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -765,7 +769,18 @@ public class MagicConstantInspection extends AbstractBaseJavaLocalInspectionTool
|
||||
|
||||
SliceRootNode rootNode = new SliceRootNode(manager.getProject(), new DuplicateMap(), LanguageSlicing.getProvider(argument).createRootUsage(argument, params));
|
||||
|
||||
Collection<? extends AbstractTreeNode> children = rootNode.getChildren().iterator().next().getChildren();
|
||||
ProgressIndicator indicator = new ProgressIndicatorBase();
|
||||
indicator.start();
|
||||
|
||||
Ref<Collection<? extends AbstractTreeNode>> nodesRef = Ref.create();
|
||||
try {
|
||||
ProgressManager.getInstance().executeProcessUnderProgress(() -> nodesRef.set(rootNode.getChildren().iterator().next().getChildren()), indicator);
|
||||
}
|
||||
finally {
|
||||
indicator.stop();
|
||||
}
|
||||
|
||||
Collection<? extends AbstractTreeNode> children = nodesRef.get();
|
||||
for (AbstractTreeNode child : children) {
|
||||
SliceUsage usage = (SliceUsage)child.getValue();
|
||||
PsiElement element = usage != null ? usage.getElement() : null;
|
||||
|
||||
Reference in New Issue
Block a user