       bufferRow += targetScreenRow - screenRow
       [bufferRow, bufferRow + 1]
 
+  # This method is used to create new regions, storing a mapping between a range
+  # of buffer rows to a certain number of screen rows. It will never add or remove
+  # rows in either coordinate space, meaning that it never changes the position
+  # of subsequent regions. It will overwrite or split existing regions that overlap
+  # with the region being stored however.
   mapBufferRowRange: (startBufferRow, endBufferRow, screenRows) ->
     { index, bufferRow, screenRow } = @traverseToBufferRow(startBufferRow)
 

        bufferRow += bufferRows
        index++

  applyScreenDelta: (startScreenRow, delta) ->
    return if delta is 0
    { index, screenRow } = @traverseToScreenRow(startScreenRow)


    @regions[overlapStartIndex..overlapEndIndex] = newRegions

  # This method records insertion or removal of rows in the buffer, adjusting the
  # buffer dimension of regions following the start row accordingly.
  applyBufferDelta: (startBufferRow, delta) ->
    return if delta is 0
    { index, bufferRow } = @traverseToBufferRow(startBufferRow)
