     unless fn()
       @trigger 'autoscrolled' if @needsAutoscroll
 
-  ### Public ###
-
-  # Moves a cursor to a given screen position.
+  # Public: Moves a cursor to a given screen position.
   #
   # screenPosition - An {Array} of two numbers: the screen row, and the screen column.
   # options - An object with the following keys:
   #           autoscroll: A {Boolean} which, if `true`, scrolls the {EditSession} to wherever the cursor moves to
-  #
   setScreenPosition: (screenPosition, options={}) ->
     @changePosition options, =>
       @marker.setHeadScreenPosition(screenPosition, options)
 
-  # Gets the screen position of the cursor.
+  # Public: Gets the screen position of the cursor.
   #
   # Returns an {Array} of two numbers: the screen row, and the screen column.
   getScreenPosition: ->
     @marker.getHeadScreenPosition()
 
-  # Moves a cursor to a given buffer position.
+  # Public: Moves a cursor to a given buffer position.
   #
   # bufferPosition - An {Array} of two numbers: the buffer row, and the buffer column.
   # options - An object with the following keys:
   #           autoscroll: A {Boolean} which, if `true`, scrolls the {EditSession} to wherever the cursor moves to
-  #
   setBufferPosition: (bufferPosition, options={}) ->
     @changePosition options, =>
       @marker.setHeadBufferPosition(bufferPosition, options)
 
-  # Gets the current buffer position.
+  # Public: Gets the current buffer position.
   #
   # Returns an {Array} of two numbers: the buffer row, and the buffer column.
   getBufferPosition: ->
     @marker.getHeadBufferPosition()
 
-  # If the marker range is empty, the cursor is marked as being visible.
+  # Public: If the marker range is empty, the cursor is marked as being visible.
   updateVisibility: ->
     @setVisible(@marker.getBufferRange().isEmpty())
 
-  # Sets the visibility of the cursor.
-  #
-  # visible - A {Boolean} indicating whether the cursor should be visible
+  # Public: Sets the {Boolean} visibility of the cursor.
   setVisible: (visible) ->
     if @visible != visible
       @visible = visible
       @needsAutoscroll ?= true if @visible and @isLastCursor()
       @trigger 'visibility-changed', @visible
 
-  # Retrieves the visibility of the cursor.
-  #
-  # Returns a {Boolean}.
+  # Public: Returns the visibility of the cursor as a {Boolean}
   isVisible: -> @visible
 
-  # Identifies what the cursor considers a "word" RegExp.
-  #
-  # Returns a {RegExp}.
+  # Public: Returns a {RegExp} of what the cursor considers a "word"
   wordRegExp: ->
     nonWordCharacters = config.get("editor.nonWordCharacters")
     new RegExp("^[\t ]*$|[^\\s#{_.escapeRegExp(nonWordCharacters)}]+|[#{_.escapeRegExp(nonWordCharacters)}]+", "g")
 
-  # Identifies if this cursor is the last in the {EditSession}.
+  # Public: Identifies if this cursor is the last in the {EditSession}.
   #
   # "Last" is defined as the most recently added cursor.
   #

    goalColumn = 0 if goalColumn == column
    @setScreenPosition([row, goalColumn])

  # Moves the cursor to the beginning of the buffer line, skipping all whitespace.
  skipLeadingWhitespace: ->
    position = @getBufferPosition()
    scanRange = @getCurrentLineBufferRange()

    @setScreenPosition({row: row - rowCount, column: column})
    @goalColumn = column

  # Public: Moves the cursor down one screen row.
  moveDown: (rowCount = 1, {moveToEndOfSelection}={}) ->
    range = @marker.getScreenRange()
    if moveToEndOfSelection and not range.isEmpty()
