mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Do not optimize imports in dumb mode (it can happen via ReformatCodeAction)
This commit is contained in:
+9
-2
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.CodeInsightBundle;
|
||||
import com.intellij.lang.ImportOptimizer;
|
||||
import com.intellij.lang.LanguageImportStatements;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.EmptyRunnable;
|
||||
import com.intellij.psi.PsiDirectory;
|
||||
@@ -34,7 +35,8 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.FutureTask;
|
||||
|
||||
import static com.intellij.codeInsight.actions.OptimizeImportsProcessor.NotificationInfo.*;
|
||||
import static com.intellij.codeInsight.actions.OptimizeImportsProcessor.NotificationInfo.NOTHING_CHANGED_NOTIFICATION;
|
||||
import static com.intellij.codeInsight.actions.OptimizeImportsProcessor.NotificationInfo.SOMETHING_CHANGED_WITHOUT_MESSAGE_NOTIFICATION;
|
||||
|
||||
public class OptimizeImportsProcessor extends AbstractLayoutCodeProcessor {
|
||||
private static final String PROGRESS_TEXT = CodeInsightBundle.message("progress.text.optimizing.imports");
|
||||
@@ -76,6 +78,10 @@ public class OptimizeImportsProcessor extends AbstractLayoutCodeProcessor {
|
||||
@Override
|
||||
@NotNull
|
||||
protected FutureTask<Boolean> prepareTask(@NotNull PsiFile file, boolean processChangedTextOnly) {
|
||||
if (DumbService.isDumb(file.getProject())) {
|
||||
return new FutureTask<>(EmptyRunnable.INSTANCE, true);
|
||||
}
|
||||
|
||||
final Set<ImportOptimizer> optimizers = LanguageImportStatements.INSTANCE.forFile(file);
|
||||
final List<Runnable> runnables = new ArrayList<>();
|
||||
List<PsiFile> files = file.getViewProvider().getAllFiles();
|
||||
@@ -87,7 +93,7 @@ public class OptimizeImportsProcessor extends AbstractLayoutCodeProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
Runnable runnable = !runnables.isEmpty() ? (Runnable)() -> {
|
||||
Runnable runnable = !runnables.isEmpty() ? () -> {
|
||||
CodeStyleManagerImpl.setSequentialProcessingAllowed(false);
|
||||
try {
|
||||
for (Runnable runnable1 : runnables) {
|
||||
@@ -100,6 +106,7 @@ public class OptimizeImportsProcessor extends AbstractLayoutCodeProcessor {
|
||||
CodeStyleManagerImpl.setSequentialProcessingAllowed(true);
|
||||
}
|
||||
} : EmptyRunnable.getInstance();
|
||||
|
||||
return new FutureTask<>(runnable, true);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user