   target: "InnerSmartWord"
 
 # -------------------------
-class TransformStringBySelectList extends TransformString
+class TransformStringBySelectList extends Operator
   @extend()
   requireInput: true
   requireTarget: true

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

  initialize: ->
    @vimState.onDidSelectListConfirm (item) =>
      @input = item.name
      @vimState.operationStack.process()

    @onDidSetTarget =>
      @focusSelectList(@selectListItems)

  getNewText: (text) ->
    operationName = @input
    if operationName
      operation = @new operationName
      operation.getNewText(text)
    else
      text

class TransformWordBySelectList extends TransformStringBySelectList
  @extend()

    "ToggleCase"
    "EncodeUriComponent"
    "DecodeUriComponent"
    "JoinByInput"
    "JoinWithKeepingSpace"
    "Reverse"
    "SplitString"
    "Surround"
    "MapSurround"
  ]

  focusSelectList: (items) ->
