Add Editor.linesForScreenRows and .getScreenLines

These just abstract the line wrapper as the source of the screen lines.
This commit is contained in:
Nathan Sobo
2012-02-27 10:31:37 -07:00
parent 8e107359f3
commit 796e24f278

View File

@@ -132,9 +132,15 @@ class Editor extends View
renderLines: ->
@lines.empty()
for screenLine in @lineWrapper.getLines()
for screenLine in @getScreenLines()
@lines.append @buildLineElement(screenLine)
getScreenLines: ->
@lineWrapper.getLines()
linesForScreenRows: (start, end) ->
@lineWrapper.linesForScreenRows(start, end)
setBuffer: (@buffer) ->
@highlighter = new Highlighter(@buffer)
@lineFolder = new LineFolder(@highlighter)
@@ -151,7 +157,7 @@ class Editor extends View
@lineWrapper.on 'change', (e) =>
{ oldRange, newRange } = e
screenLines = @lineWrapper.linesForScreenRows(newRange.start.row, newRange.end.row)
screenLines = @linesForScreenRows(newRange.start.row, newRange.end.row)
if newRange.end.row > oldRange.end.row
# update, then insert elements
for row in [newRange.start.row..newRange.end.row]