     {characters} = @offsetIndex.totalTo(row, 'rows')
     characters + column
 
+  # Public: Given a {Number} represting an absolute offset in the buffer,
+  # inclusive of newlines, returns a {Point} representing that numbers
+  # corresponding position in row/column coordinates. The offset is clipped
+  # prior to translating.
   positionForCharacterIndex: (offset) ->
     offset = Math.max(0, offset)
     offset = Math.min(@getMaxCharacterIndex(), offset)

  @delegatesMethods 'markRange', 'markPosition', 'getMarker', 'getMarkers',
    'findMarkers', toProperty: 'markers'

  constructor: (params) ->
    text = params if typeof params is 'string'
    @lines = ['']

    @markers?.handleBufferChange(patch)
    patch

  # Private: Applies a {BufferPatch} to the buffer based on its old range and
  # new text. Also applies any {MarkerPatch}es associated with the {BufferPatch}.
  applyPatch: ({oldRange, newRange, oldText, newText, markerPatches}) ->
    startRow = oldRange.start.row
    endRow = oldRange.end.row
