From d6e3d9cad73f3a2caf6142b0e672e2804700a59e Mon Sep 17 00:00:00 2001 From: "Denis.Zhdanov" Date: Sat, 2 Feb 2013 15:05:31 +0400 Subject: [PATCH] Restrict white space strategy by language --- .../CompositeWhiteSpaceFormattingStrategy.java | 5 +++++ .../src/com/intellij/psi/formatter/FormatterUtil.java | 11 ++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/psi/formatter/CompositeWhiteSpaceFormattingStrategy.java b/platform/lang-impl/src/com/intellij/psi/formatter/CompositeWhiteSpaceFormattingStrategy.java index 2844adb44c57..ad19870515df 100644 --- a/platform/lang-impl/src/com/intellij/psi/formatter/CompositeWhiteSpaceFormattingStrategy.java +++ b/platform/lang-impl/src/com/intellij/psi/formatter/CompositeWhiteSpaceFormattingStrategy.java @@ -109,6 +109,11 @@ public class CompositeWhiteSpaceFormattingStrategy implements WhiteSpaceFormatti @Override public boolean containsWhitespacesOnly(@NotNull ASTNode node) { + for (WhiteSpaceFormattingStrategy strategy : myStrategies) { + if (strategy.containsWhitespacesOnly(node)) { + return true; + } + } return false; } diff --git a/platform/lang-impl/src/com/intellij/psi/formatter/FormatterUtil.java b/platform/lang-impl/src/com/intellij/psi/formatter/FormatterUtil.java index 858da1d904ee..b208bd2ea1f7 100644 --- a/platform/lang-impl/src/com/intellij/psi/formatter/FormatterUtil.java +++ b/platform/lang-impl/src/com/intellij/psi/formatter/FormatterUtil.java @@ -19,6 +19,7 @@ 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.lang.Language; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiElement; @@ -254,12 +255,12 @@ public class FormatterUtil { if (node == null) return false; if (isWhitespaceOrEmpty(node)) return true; - for (WhiteSpaceFormattingStrategy strategy : WhiteSpaceFormattingStrategyFactory.getAllStrategies()) { - if (strategy.containsWhitespacesOnly(node)) { - return true; - } + PsiElement psi = node.getPsi(); + if (psi == null) { + return false; } - return false; + Language language = psi.getLanguage(); + return WhiteSpaceFormattingStrategyFactory.getStrategy(language).containsWhitespacesOnly(node); } /**