Don't perform 'sequential formatting' for all actions over 'reformat'

This commit is contained in:
Denis Zhdanov
2011-02-18 17:40:02 +03:00
parent 2366d5d403
commit b4ec1e27d2
7 changed files with 25 additions and 3 deletions
@@ -28,8 +28,8 @@ import org.jetbrains.annotations.NotNull;
* @author max
*/
public class ReformatAndOptimizeImportsProcessor extends AbstractLayoutCodeProcessor {
public static final String COMMAND_NAME = CodeInsightBundle.message("progress.reformat.code.prepare");
private static final String PROGRESS_TEXT = CodeInsightBundle.message("reformat.progress.common.text");
private static final String COMMAND_NAME = CodeInsightBundle.message("progress.reformat.code.prepare");
private final OptimizeImportsProcessor myOptimizeImportsProcessor;
private final ReformatCodeProcessor myReformatCodeProcessor;
@@ -28,11 +28,13 @@ import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
public class ReformatCodeProcessor extends AbstractLayoutCodeProcessor {
public static final String COMMAND_NAME = CodeInsightBundle.message("process.reformat.code");
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.actions.ReformatCodeProcessor");
private final TextRange myRange;
private static final String PROGRESS_TEXT = CodeInsightBundle.message("reformat.progress.common.text");
private static final String COMMAND_NAME = CodeInsightBundle.message("process.reformat.code");
public ReformatCodeProcessor(Project project) {
super(project, COMMAND_NAME, PROGRESS_TEXT);
@@ -18,6 +18,7 @@ package com.intellij.formatting;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.components.ApplicationComponent;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileTypes.FileType;
@@ -25,6 +26,7 @@ import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.PsiFile;
import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.psi.formatter.FormatterUtil;
import com.intellij.psi.formatter.FormattingDocumentModelImpl;
import com.intellij.psi.formatter.PsiBasedFormattingModel;
import com.intellij.util.IncorrectOperationException;
@@ -92,6 +94,9 @@ public class FormatterImpl extends FormatterEx
@Override
public void setProgressIndicator(@NotNull FormattingProgressIndicatorImpl progressIndicator) {
if (!FormatterUtil.FORMATTER_ACTION_NAMES.contains(CommandProcessor.getInstance().getCurrentCommandName())) {
return;
}
myProgressIndicator = progressIndicator;
}
@@ -17,6 +17,7 @@ package com.intellij.formatting;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.ide.IdeBundle;
import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.command.undo.UndoManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Document;
@@ -27,6 +28,7 @@ import com.intellij.openapi.progress.Task;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import com.intellij.psi.formatter.FormatterUtil;
import com.intellij.util.SequentialTask;
import com.intellij.util.containers.HashSet;
import com.intellij.util.ui.UIUtil;
@@ -15,6 +15,8 @@
*/
package com.intellij.psi.formatter;
import com.intellij.codeInsight.actions.ReformatAndOptimizeImportsProcessor;
import com.intellij.codeInsight.actions.ReformatCodeProcessor;
import com.intellij.lang.ASTFactory;
import com.intellij.lang.ASTNode;
import com.intellij.openapi.util.TextRange;
@@ -27,12 +29,21 @@ import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.TokenSet;
import com.intellij.util.CharTable;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.HashSet;
import org.jetbrains.annotations.Nullable;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
public class FormatterUtil {
private static final List<FormatterUtilHelper> ourHelpers = ContainerUtil.createEmptyCOWList();
public static final Collection<String> FORMATTER_ACTION_NAMES = Collections.unmodifiableCollection(ContainerUtil.addAll(
new HashSet<String>(), ReformatAndOptimizeImportsProcessor.COMMAND_NAME, ReformatCodeProcessor.COMMAND_NAME
));
private FormatterUtil() {
}
@@ -51,6 +51,7 @@ public interface IdeActions {
@NonNls String ACTION_EDITOR_NEXT_TEMPLATE_VARIABLE = "NextTemplateVariable";
@NonNls String ACTION_EDITOR_PREVIOUS_TEMPLATE_VARIABLE = "PreviousTemplateVariable";
@NonNls String ACTION_EDITOR_REFORMAT = "ReformatCode";
@NonNls String ACTION_COMMENT_LINE = "CommentByLineComment";
@@ -478,11 +478,12 @@ public class ContainerUtil {
}
}
public static <T> void addAll(@NotNull Collection<T> collection, @NotNull T... elements) {
public static <T> Collection<T> addAll(@NotNull Collection<T> collection, @NotNull T... elements) {
//noinspection ManualArrayToCollectionCopy
for (T element : elements) {
collection.add(element);
}
return collection;
}
public static <T, U extends T> U findInstance(@NotNull Iterable<T> iterable, @NotNull Class<U> aClass) {