   requireInput: true
   input: null
   target: "MoveToRelativeLine"
+  keepSplitter: false
 
   initialize: ->
     @onDidSetTarget =>

  @description: "Sort lines alphabetically"
  getNewRows: (rows) ->
    rows.sort()

    super

  getNewText: (text) ->
    input = @input or "\\n"
    regex = ///#{_.escapeRegExp(input)}///g
    lineSeparator = "\n"
    lineSeparator += @input
    text.replace(regex, lineSeparator)

class SplitStringWithKeepingSplitter extends SplitString
  @extend()
  @registerToSelectList()
  keepSplitter: true

class ChangeOrder extends TransformString
  @extend(false)
  wise: 'linewise'

  getNewText: (text) ->
    rows = text.trimRight().split(/\r?\n/g)
    @getNewRows(rows).join("\n") + "\n"

class Reverse extends ChangeOrder
  @extend()
