This commit is contained in:
Nathan Sobo
2012-11-23 12:09:29 -07:00
parent 39863e4ebe
commit f28cedea7d

View File

@@ -25,27 +25,6 @@ class TokenizedBuffer
@invalidateRow(0)
@buffer.on "change.tokenized-buffer#{@id}", (e) => @handleBufferChange(e)
handleBufferChange: (e) ->
{oldRange, newRange} = e
start = oldRange.start.row
end = oldRange.end.row
delta = newRange.end.row - oldRange.end.row
@updateInvalidRows(start, end, delta)
previousStack = @stackForRow(end) # used in spill detection below
stack = @stackForRow(start - 1)
if stack? or start == 0
@screenLines[start..end] = @buildTokenizedScreenLinesForRows(start, end + delta, stack)
else
@screenLines[start..end] = @buildPlaceholderScreenLinesForRows(start, end + delta, stack)
unless _.isEqual(@stackForRow(end + delta), previousStack)
@invalidateRow(end + delta + 1)
@trigger "change", { start, end, delta, bufferChange: e }
getTabLength: ->
@tabLength
@@ -108,6 +87,27 @@ class TokenizedBuffer
else if row > end
row + delta
handleBufferChange: (e) ->
{oldRange, newRange} = e
start = oldRange.start.row
end = oldRange.end.row
delta = newRange.end.row - oldRange.end.row
@updateInvalidRows(start, end, delta)
previousStack = @stackForRow(end) # used in spill detection below
stack = @stackForRow(start - 1)
if stack? or start == 0
@screenLines[start..end] = @buildTokenizedScreenLinesForRows(start, end + delta, stack)
else
@screenLines[start..end] = @buildPlaceholderScreenLinesForRows(start, end + delta, stack)
unless _.isEqual(@stackForRow(end + delta), previousStack)
@invalidateRow(end + delta + 1)
@trigger "change", { start, end, delta, bufferChange: e }
buildPlaceholderScreenLinesForRows: (startRow, endRow) ->
@buildPlaceholderScreenLineForRow(row) for row in [startRow..endRow]