From 5e38add177dc9d6b1cb9784b3a137bac199f5fb2 Mon Sep 17 00:00:00 2001 From: David Graham & Nathan Sobo Date: Wed, 9 Apr 2014 13:07:02 -0600 Subject: [PATCH] Only mark trailing whitespace on the last segment of a soft-wrapped line --- spec/tokenized-buffer-spec.coffee | 9 +++++++++ src/tokenized-line.coffee | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/spec/tokenized-buffer-spec.coffee b/spec/tokenized-buffer-spec.coffee index 5d538f51c..81f5bdcf1 100644 --- a/spec/tokenized-buffer-spec.coffee +++ b/spec/tokenized-buffer-spec.coffee @@ -500,3 +500,12 @@ describe "TokenizedBuffer", -> # Lines that are *only* whitespace are considered to have trailing whitespace buffer.insert([10, 0], ' ') expect(tokenizedBuffer.lineForScreenRow(10).tokens[0].hasTrailingWhitespace).toBe true + + it "only marks trailing whitespace on the last segment of a soft-wrapped line", -> + buffer.insert([0, Infinity], ' ') + tokenizedLine = tokenizedBuffer.lineForScreenRow(0) + [segment1, segment2] = tokenizedLine.softWrapAt(16) + expect(segment1.tokens[5].value).toBe ' ' + expect(segment1.tokens[5].hasTrailingWhitespace).toBe false + expect(segment2.tokens[6].value).toBe ' ' + expect(segment2.tokens[6].hasTrailingWhitespace).toBe true diff --git a/src/tokenized-line.coffee b/src/tokenized-line.coffee index 32c1c281c..d7e4a9484 100644 --- a/src/tokenized-line.coffee +++ b/src/tokenized-line.coffee @@ -125,7 +125,8 @@ class TokenizedLine position = 0 for token, i in @tokens token.hasLeadingWhitespace = position < firstNonWhitespacePosition - token.hasTrailingWhitespace = position + token.value.length > firstTrailingWhitespacePosition + # Only the *last* segment of a soft-wrapped line can have trailing whitespace + token.hasTrailingWhitespace = @lineEnding? and (position + token.value.length > firstTrailingWhitespacePosition) position += token.value.length isComment: ->