   removeCursorView: (cursorView) ->
     _.remove(@cursorViews, cursorView)
 
-  updateCursorViews: ->
-    if @newCursors.length > 0
-      @addCursorView(cursor) for cursor in @newCursors
-      @syncCursorAnimations()
-      @newCursors = []
-
-    for cursorView in @getCursorViews()
-      if cursorView.needsRemoval
-        cursorView.remove()
-      else if cursorView.needsUpdate
-        cursorView.updateDisplay()
-
-  updateSelectionViews: ->
-    if @newSelections.length > 0
-      @addSelectionView(selection) for selection in @newSelections
-      @newSelections = []
-
-    for selectionView in @getSelectionViews()
-      if selectionView.destroyed
-        selectionView.remove()
-      else
-        selectionView.updateDisplay()
-
-  syncCursorAnimations: ->
-    for cursorView in @getCursorViews()
-      do (cursorView) -> cursorView.resetCursorAnimation()
-
   getSelectionView: (index) ->
     index ?= @selectionViews.length - 1
     @selectionViews[index]

    @updateDisplay(suppressAutoScroll: true)

  updateDisplay: (options={}) ->
    return unless @attached
    @updateCursorViews()
    @updateSelectionViews()
    @autoscroll(options)
    @updateRenderedLines()

  autoscroll: (options={}) ->
    for cursorView in @getCursorViews() when cursorView.needsAutoscroll

    @firstRenderedScreenRow = null
    @lastRenderedScreenRow = null

  resetDisplay: ->
    return unless @attached

