       exitOnEscape: true
     super extend defaults, options
 
+    # Establish or use the initial selection.  If that's not possible, then enter caret mode.
     unless @options.oneMovementOnly or options.immediateMovement
       if @options.parentMode and @selection.type == "Caret"
         # We're being called from edit mode, so establish an intial visible selection.

    @reverseSelection()
    @runMovement forward, line for [1...count]
    @runMovement forward, lineboundary
    @runMovement forward, character unless @nextCharacterIsWordCharacter()

class VisualLineMode extends VisualMode
  constructor: (options = {}) ->

  # Swap the anchor node/offset and the focus node/offset.  This allows us to work with both ends of the
  # selection, and implements "o" for visual mode.
  reverseSelection: ->
    direction = @getDirection()
    element = document.activeElement
    if element and DomUtils.isEditable(element) and not element.isContentEditable
      # Note(smblott). This implementation is unacceptably expensive if the selection is large.  We only use
      # it here because the normal method (below) does not work for simple text inputs.
