diff --git a/spec/text-editor-presenter-spec.coffee b/spec/text-editor-presenter-spec.coffee index 35ce570ae..b72d64986 100644 --- a/spec/text-editor-presenter-spec.coffee +++ b/spec/text-editor-presenter-spec.coffee @@ -93,11 +93,7 @@ describe "TextEditorPresenter", -> expectValues stateFn(presenter).tiles[8], { top: 5 } - expectValues stateFn(presenter).tiles[10], { - top: 7 - } - - expect(stateFn(presenter).tiles[12]).toBeUndefined() + expect(stateFn(presenter).tiles[10]).toBeUndefined() it "includes state for all tiles if no external ::explicitHeight is assigned", -> presenter = buildPresenter(explicitHeight: null, tileSize: 2) @@ -166,8 +162,7 @@ describe "TextEditorPresenter", -> expect(stateFn(presenter).tiles[0]).toBeDefined() expect(stateFn(presenter).tiles[2]).toBeDefined() - expect(stateFn(presenter).tiles[4]).toBeDefined() - expect(stateFn(presenter).tiles[6]).toBeUndefined() + expect(stateFn(presenter).tiles[4]).toBeUndefined() it "does not remove out-of-view tiles corresponding to ::mouseWheelScreenRow until ::stoppedScrollingDelay elapses", -> presenter = buildPresenter(explicitHeight: 6, scrollTop: 0, lineHeight: 1, tileSize: 2, stoppedScrollingDelay: 200) @@ -1436,7 +1431,7 @@ describe "TextEditorPresenter", -> presenter.setBaseCharacterWidth(8) assignedAnyHighlight = false for tileId, tileState of presenter.getState().content.tiles - assignedAnyHighlight ||= _.isEqual(tileState.highlights, {}) + assignedAnyHighlight ||= not _.isEqual(tileState.highlights, {}) expect(assignedAnyHighlight).toBe(true) @@ -2065,9 +2060,7 @@ describe "TextEditorPresenter", -> expectValues lineNumberStateForScreenRow(presenter, 5), {bufferRow: 4} expectValues lineNumberStateForScreenRow(presenter, 6), {bufferRow: 7} expectValues lineNumberStateForScreenRow(presenter, 7), {bufferRow: 8} - expectValues lineNumberStateForScreenRow(presenter, 8), {bufferRow: 8} - expectValues lineNumberStateForScreenRow(presenter, 9), {bufferRow: 9} - expect(lineNumberStateForScreenRow(presenter, 10)).toBeUndefined() + expect(lineNumberStateForScreenRow(presenter, 8)).toBeUndefined() expectStateUpdate presenter, -> editor.getBuffer().insert([3, Infinity], new Array(25).join("x ")) @@ -2079,9 +2072,7 @@ describe "TextEditorPresenter", -> expectValues lineNumberStateForScreenRow(presenter, 5), {bufferRow: 3} expectValues lineNumberStateForScreenRow(presenter, 6), {bufferRow: 4} expectValues lineNumberStateForScreenRow(presenter, 7), {bufferRow: 7} - expectValues lineNumberStateForScreenRow(presenter, 8), {bufferRow: 8} - expectValues lineNumberStateForScreenRow(presenter, 9), {bufferRow: 8} - expect(lineNumberStateForScreenRow(presenter, 10)).toBeUndefined() + expect(lineNumberStateForScreenRow(presenter, 8)).toBeUndefined() it "correctly handles the first screen line being soft-wrapped", -> editor.setSoftWrapped(true) diff --git a/src/text-editor-presenter.coffee b/src/text-editor-presenter.coffee index 39c3b9c25..e8c99ca25 100644 --- a/src/text-editor-presenter.coffee +++ b/src/text-editor-presenter.coffee @@ -343,7 +343,7 @@ class TextEditorPresenter updateVisibleTilesState: -> return unless @startRow? and @endRow? and @lineHeight? - @updateTilesState([@startRow..@endRow]) + @updateTilesState([@startRow...@endRow]) updateTilesState: (screenRows) -> visibleTiles = {} @@ -360,7 +360,7 @@ class TextEditorPresenter while screenRowIndex >= 0 currentScreenRow = screenRows[screenRowIndex] break if currentScreenRow < tileStartRow - rowsWithinTile.push(currentScreenRow) + rowsWithinTile.unshift(currentScreenRow) screenRowIndex-- continue if rowsWithinTile.length is 0