From 3bf734255ed0f8d0c49009b287d80dbbb7996002 Mon Sep 17 00:00:00 2001 From: Dennis Ushakov Date: Wed, 13 Jun 2018 05:02:14 -0700 Subject: [PATCH] add test for not stripping last line with caret (IDEA-CR-33136) --- .../openapi/editor/impl/TrailingSpacesStripper.java | 2 +- .../editor/impl/TrailingSpacesStripperTest.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/TrailingSpacesStripper.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/TrailingSpacesStripper.java index 118f11fd2209..31ccb8264801 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/TrailingSpacesStripper.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/TrailingSpacesStripper.java @@ -86,7 +86,7 @@ public final class TrailingSpacesStripper implements FileDocumentManagerListener public void run() { CommandProcessor.getInstance().runUndoTransparentAction(() -> { if (CharArrayUtil.containsOnlyWhiteSpaces(content.subSequence(start, end)) && doStrip && - (!settings.isKeepTrailingSpacesOnCaretLine() || !hasCaretIn(start, end))) { + !(settings.isKeepTrailingSpacesOnCaretLine() && hasCaretIn(start, end))) { document.deleteString(start, end); } else { diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/TrailingSpacesStripperTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/TrailingSpacesStripperTest.java index eb8f97f3e471..df1fb99ef7f5 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/TrailingSpacesStripperTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/TrailingSpacesStripperTest.java @@ -76,6 +76,16 @@ public class TrailingSpacesStripperTest extends LightPlatformCodeInsightTestCase doTest("xxx\n 222 \nyyy", "xxx\n 222\nyyy"); } + public void testDoNotStripModifiedOnCurrentLastLine() { + EditorSettingsExternalizable settings = EditorSettingsExternalizable.getInstance(); + settings.setEnsureNewLineAtEOF(true); + + configureFromFileText("x.txt", "xxx\n "); + type(' '); + + FileDocumentManager.getInstance().saveAllDocuments(); + checkResultByText("xxx\n \n"); + } public void testStrippingWithMultipleCarets() { doTest("xxx\n \nyyy ",