diff --git a/platform/lang-impl/src/com/intellij/codeInsight/actions/LayoutCodeDialog.java b/platform/lang-impl/src/com/intellij/codeInsight/actions/LayoutCodeDialog.java index cfbc5907b75d..4e1f6f7deccb 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/actions/LayoutCodeDialog.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/actions/LayoutCodeDialog.java @@ -103,7 +103,7 @@ public class LayoutCodeDialog extends DialogWrapper { myCbIncludeSubdirs.setEnabled(myRbDirectory.isSelected()); myCbOptimizeImports.setEnabled( !myRbSelectedText.isSelected() && - !(myFile != null && LanguageImportStatements.INSTANCE.forFile(myFile) == null && myRbFile.isSelected())); + !(myFile != null && LanguageImportStatements.INSTANCE.forFile(myFile).isEmpty() && myRbFile.isSelected())); final boolean canTargetVcsChanges = canTargetVcsRegions(); myCbOnlyVcsChangedRegions.setEnabled(canTargetVcsChanges); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/actions/OptimizeImportsProcessor.java b/platform/lang-impl/src/com/intellij/codeInsight/actions/OptimizeImportsProcessor.java index d16b9dcf3b46..f6ce2f44134e 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/actions/OptimizeImportsProcessor.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/actions/OptimizeImportsProcessor.java @@ -17,7 +17,6 @@ package com.intellij.codeInsight.actions; 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.Project; @@ -27,6 +26,7 @@ import com.intellij.psi.PsiFile; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; +import java.util.List; import java.util.concurrent.FutureTask; public class OptimizeImportsProcessor extends AbstractLayoutCodeProcessor { @@ -58,11 +58,16 @@ public class OptimizeImportsProcessor extends AbstractLayoutCodeProcessor { } @NotNull - protected FutureTask preprocessFile(@NotNull final PsiFile file, boolean processChangedTextOnly) - throws IncorrectOperationException - { - final ImportOptimizer optimizer = LanguageImportStatements.INSTANCE.forFile(file); - Runnable runnable = optimizer != null ? optimizer.processFile(file) : EmptyRunnable.getInstance(); + protected FutureTask preprocessFile(@NotNull final PsiFile file, boolean processChangedTextOnly) throws IncorrectOperationException { + final List optimizers = LanguageImportStatements.INSTANCE.forFile(file); + Runnable runnable = optimizers.isEmpty() ? EmptyRunnable.getInstance() : new Runnable() { + @Override + public void run() { + for (Runnable optimizer : optimizers) { + optimizer.run(); + } + } + }; return new FutureTask(runnable, true); } }