From 80d934c2d5ee0ba930cc9458b0c7cc4fdbaccf1a Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 23 Sep 2010 22:02:32 +0400 Subject: [PATCH] if comma is followed by whitespace, wrap after whitespace rather than before it --- .../editor/GenericLineWrapPositionStrategy.java | 10 ++++++++-- .../editor/DefaultLineWrapPositionStrategyTest.java | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/platform/platform-api/src/com/intellij/openapi/editor/GenericLineWrapPositionStrategy.java b/platform/platform-api/src/com/intellij/openapi/editor/GenericLineWrapPositionStrategy.java index 7d276ac8e875..99c925238394 100644 --- a/platform/platform-api/src/com/intellij/openapi/editor/GenericLineWrapPositionStrategy.java +++ b/platform/platform-api/src/com/intellij/openapi/editor/GenericLineWrapPositionStrategy.java @@ -78,8 +78,14 @@ public class GenericLineWrapPositionStrategy implements LineWrapPositionStrategy Rule rule = myRules.get(c); if (rule != null) { if (rule.condition == WrapCondition.BOTH || rule.condition == WrapCondition.AFTER) { - if (i < maxPreferredOffsetToUse) { - offset2Weight.put(i + 1, rule.weight); + int target = i+1; + if (rule.symbol != ' ') { + while(i < maxPreferredOffsetToUse && text.charAt(target) == ' ') { + target++; + } + } + if (target <= maxPreferredOffsetToUse) { + offset2Weight.put(target, rule.weight); } } diff --git a/platform/platform-api/testSrc/com/intellij/openapi/editor/DefaultLineWrapPositionStrategyTest.java b/platform/platform-api/testSrc/com/intellij/openapi/editor/DefaultLineWrapPositionStrategyTest.java index 5c3f16b91bde..ef976fcabb96 100644 --- a/platform/platform-api/testSrc/com/intellij/openapi/editor/DefaultLineWrapPositionStrategyTest.java +++ b/platform/platform-api/testSrc/com/intellij/openapi/editor/DefaultLineWrapPositionStrategyTest.java @@ -53,7 +53,7 @@ public class DefaultLineWrapPositionStrategyTest { @Test public void preferWrapOnComma() { String document = - "int variable = testMethod(var1 + var2, var3 + var4);"; + "int variable = testMethod(var1 + var2, var3 + var4);"; doTest(document); }