     "ToggleCase"
     "EncodeUriComponent"
     "DecodeUriComponent"
+    "JoinByInput"
+    "JoinWithKeepingSpace"
+    "Reverse"
+    "SplitString"
+    "Surround"
+    "MapSurround"
   ]
 
   focusSelectList: (items) ->

  target: "InnerSmartWord"

# -------------------------
class TransformStringBySelectList extends TransformString
  @extend()
  requireInput: true
  requireTarget: true

    atom.commands.dispatch(@editorElement, 'vim-mode-plus-ex-mode:open')

  initialize: ->
    @onDidSetTarget =>
      @focusSelectList(@selectListItems)

    @vimState.onDidSelectListConfirm (item) =>
      transformer = item.name
      if transformer
        # FIXME cleanup require, implement operationStack::replace()?
        @vimState.reset()
        @vimState.operationStack.run(transformer, {target: @target.constructor.name})

  execute: ->
    # NEVER be executed

class TransformWordBySelectList extends TransformStringBySelectList
  @extend()
