diff --git a/spec/app/display-buffer-spec.coffee b/spec/app/display-buffer-spec.coffee index 6f87a7ddb..fe5dc83f7 100644 --- a/spec/app/display-buffer-spec.coffee +++ b/spec/app/display-buffer-spec.coffee @@ -1,5 +1,6 @@ DisplayBuffer = require 'display-buffer' Buffer = require 'buffer' +_ = require 'underscore' describe "DisplayBuffer", -> [editSession, displayBuffer, buffer, changeHandler, tabLength] = [] @@ -55,6 +56,13 @@ describe "DisplayBuffer", -> describe "when the buffer changes", -> describe "when buffer lines are updated", -> + describe "when whitespace is added after the max line length", -> + it "adds whitespace to the end of the current line and wraps an empty line", -> + fiftyCharacters = _.multiplyString("x", 50) + editSession.buffer.setText(fiftyCharacters) + editSession.setCursorBufferPosition([0, 51]) + editSession.insertText(" ") + describe "when the update makes a soft-wrapped line shorter than the max line length", -> it "rewraps the line and emits a change event", -> buffer.delete([[6, 24], [6, 42]]) diff --git a/src/app/screen-line.coffee b/src/app/screen-line.coffee index 0c8822499..739d23eff 100644 --- a/src/app/screen-line.coffee +++ b/src/app/screen-line.coffee @@ -12,6 +12,8 @@ class ScreenLine new ScreenLine({@tokens, @ruleStack, @bufferRows, @startBufferColumn, @fold}) clipScreenColumn: (column, options={}) -> + return 0 if @tokens.length == 0 + { skipAtomicTokens } = options column = Math.min(column, @getMaxScreenColumn())