   stayOnLinewise: true
   setPoint: true
   autoIndent: false
+  @transformers: []
+
+  @registerToSelectList: ->
+    @transformers.push(this)
+
+  getTransformers: ->
+    @constructor.transformers
 
   mutateSelection: (selection) ->
     text = @getNewText(selection.getText(), selection)

# String suffix in name is to avoid confusion with 'split' window.
class SplitString extends TransformString
  @extend()
  @description: "Split single-line into multi-line by splitting specified separator chars"
  hover: icon: ':split-string:', emoji: ':hocho:'
  requireInput: true

class JoinByInputWithKeepingSpace extends JoinByInput
  @description: "Join lines without padding space between each line"
  @extend()
  @registerToSelectList()
  trim: false
  join: (rows) ->
    rows.join(@input)
