mirror of
https://github.com/atom/atom.git
synced 2026-01-23 22:08:08 -05:00
Fix bug where destroying a fold on last screen line of wrapped line caused an artifact.
This commit is contained in:
@@ -161,6 +161,15 @@ describe "Editor", ->
|
||||
editor.createFold([[3, 10], [5, 1]])
|
||||
expect(editor.gutter.find('.line-number:eq(3)').text()).toBe '4'
|
||||
expect(editor.gutter.find('.line-number:eq(4)').text()).toBe '7'
|
||||
|
||||
describe "when there is a fold on the last screen line of a wrapped line", ->
|
||||
it "renders line numbers correctly when the fold is destroyed (regression)", ->
|
||||
editor.setMaxLineLength(50)
|
||||
fold = editor.createFold([[3, 52], [3, 56]])
|
||||
fold.destroy()
|
||||
# console.log editor.renderer.bufferRowsForScreenRows()
|
||||
expect(editor.gutter.find('.line-number:last').text()).toBe '13'
|
||||
|
||||
it "adds a drop shadow when the horizontal scroller is scrolled to the right", ->
|
||||
editor.attachToDom()
|
||||
editor.width(100)
|
||||
|
||||
@@ -57,6 +57,10 @@ describe "Renderer", ->
|
||||
changeHandler.reset()
|
||||
fold.destroy()
|
||||
|
||||
expect(renderer.lineForRow(3).text).toBe ' var pivot = items.shift(), current, left = [], '
|
||||
expect(renderer.lineForRow(4).text).toBe 'right = [];'
|
||||
expect(renderer.lineForRow(5).text).toBe ' while(items.length > 0) {'
|
||||
|
||||
expect(changeHandler).toHaveBeenCalled()
|
||||
[[event]]= changeHandler.argsForCall
|
||||
expect(event.oldRange).toEqual([[3, 0], [4, 10]])
|
||||
|
||||
@@ -19,9 +19,6 @@ class LineMap
|
||||
replaceBufferRows: (start, end, lineFragments) ->
|
||||
@spliceAtBufferRow(start, end - start + 1, lineFragments)
|
||||
|
||||
replaceScreenRow: (row, lineFragments) ->
|
||||
@replaceScreenRows(row, row, lineFragments)
|
||||
|
||||
replaceScreenRows: (start, end, lineFragments) ->
|
||||
@spliceAtScreenRow(start, end - start + 1, lineFragments)
|
||||
|
||||
|
||||
@@ -75,8 +75,11 @@ class Renderer
|
||||
startScreenRow = @screenRowForBufferRow(bufferRange.start.row)
|
||||
|
||||
oldScreenRange = @screenLineRangeForBufferRange(bufferRange)
|
||||
@lineMap.replaceScreenRow(startScreenRow,
|
||||
@buildLinesForBufferRows(bufferRange.start.row, bufferRange.end.row))
|
||||
lines = @buildLinesForBufferRows(bufferRange.start.row, bufferRange.end.row)
|
||||
@lineMap.replaceScreenRows(
|
||||
oldScreenRange.start.row,
|
||||
oldScreenRange.end.row
|
||||
lines)
|
||||
newScreenRange = @screenLineRangeForBufferRange(bufferRange)
|
||||
|
||||
@trigger 'change', oldRange: oldScreenRange, newRange: newScreenRange
|
||||
|
||||
Reference in New Issue
Block a user