       return
 
     # Try to start with a visible selection.
-    if type == "Caret" or @selection.isCollapsed
+    if type == "Caret" # or @selection.isCollapsed (broken if selection is in and input)
       @moveInDirection(forward) or @moveInDirection backward
 
     defaults =


    "o": ->
      # Swap the anchor and focus.
      # Note(smblott). I can't find an approach which works for both cases, so we have to implement each case
      # separately.
      original = @selection.getRangeAt 0
      switch @getDirection()
        when forward

          range.setEnd @selection.anchorNode, @selection.anchorOffset
          @selection.removeAllRanges()
          @selection.addRange range
      return

  # TODO(smblott). What do we do if there is no initial selection?  Or multiple ranges?
  constructor: (options) ->
