 
 class TransformString extends Operator
   @extend(false)
-  cursorPositionOnOperate:
-    default: 'startPointOfSelection'
-    stay: 'pointBeforeSelect'
+  finalPosition:
+    default: 'postSelect'
     config: 'stayOnTransformString'
     stayOnLinewise: true
 

        class: 'vim-mode-plus-flash'
        timeout: settings.get('flashOnOperateDuration')

  preservePoints: ->
    points = _.pluck(@editor.getSelectedBufferRanges(), 'start')
    (selection, i) ->
      selection.cursor.setBufferPosition(points[i])

  preservePointsAsMarker: ->
    options = {invalidate: 'never', persistent: false}
    markers = @editor.getCursorBufferPositions().map (point) =>
      @editor.markBufferPosition point, options
    (selection, i) ->
      point = markers[i].getStartBufferPosition()
      selection.cursor.setBufferPosition(point)

  getCursorPositionInstruction: ->
    return null unless @cursorPositionOnOperate?
    {config, stayOnLinewise, stay, default: _default} = @cursorPositionOnOperate
    if settings.get(config) or (@target.isLinewise?() and stayOnLinewise)
      stay
    else
      _default

  # restoreCursor would be set to one of following value,
  #  point: original cursor position

class Indent extends Operator
  @extend()
  hover: icon: ':indent:', emoji: ':point_right:'
  finalPosition:
    default: 'postSelectThenFirstChar'
    config: 'stayOnIndent'

  execute: ->
