   @description: "Change surround character, from char is auto-detected from enclosed and forwarding area"
   target: "AAnyPairAllowForwarding"
 
-# Join < TransformString
-# -------------------------
 # FIXME
 # Currently native editor.joinLines() is better for cursor position setting
 # So I use native methods for a meanwhile.

  initialize: ->
    super

    @vimState.onDidConfirmSelectList (transformer) =>
      @vimState.reset()
      target = @target?.constructor.name
      @vimState.operationStack.run(transformer.name, {target})
    @focusSelectList({items: @getItems()})

  execute: ->
    # NEVER be executed since operationStack is replaced with selected transformer


# TransformString
# ================================
class TransformString extends Operator
  @extend(false)
  trackChange: true
  stayOptionName: 'stayOnTransformString'
  autoIndent: false
  autoIndentNewline: false
  @stringTransformers: []

  @registerToSelectList: ->
    @stringTransformers.push(this)

  mutateSelection: (selection, stopMutation) ->
    if text = @getNewText(selection.getText(), selection, stopMutation)
