   getStartRow: -> @getRowFor('start')
   getEndRow: -> @getRowFor('end')
 
-
   getTailBufferRange: ->
     {editor} = @selection
-    if (@isSingleRow() and @isLinewise())
-      console.log "singleRow"
-      editor.bufferRangeForBufferRow(@getTailRow(), includeNewline: true)
-    else
-      console.log "normal tail"
-      tailStart = @selection.getTailScreenPosition()
-      # tailStart = @selection.getTailBufferPosition()
-      if @selection.isReversed()
-        # tailEnd = translatePointAndClip(editor, tailStart, 'backward')
-        tailEnd = editor.clipScreenPosition(tailStart.translate([0, -1]), clipDirection: 'backward')
-      else
-        # tailEnd = translatePointAndClip(editor, tailStart, 'forward')
-        tailEnd = editor.clipScreenPosition(tailStart.translate([0, +1]), clipDirection: 'forward')
-
-      # tailStart = @selection.getTailScreenPosition()
-      # if @selection.isReversed()
-      #   tailEnd = translatePointAndClip(editor, tailStart, 'backward')
-      # else
-      #   tailEnd = translatePointAndClip(editor, tailStart, 'forward')
-
-      editor.bufferRangeForScreenRange([tailStart, tailEnd])
+    tailPoint = @selection.getTailBufferPosition()
+    if @selection.isReversed()
+      point = translatePointAndClip(editor, tailPoint, 'backward')
+      new Range(point, tailPoint)
+    else
+      point = translatePointAndClip(editor, tailPoint, 'forward')
+      new Range(tailPoint, point)
 
   preserveCharacterwise: ->
     properties = @detectCharacterwiseProperties()

  translateSelectionEndAndClip: (direction) ->
    {goalColumn} = @selection.cursor
    {start, end} = @getBufferRange()
    newEnd = translatePointAndClip(@selection.editor, end, direction)
    @setBufferRange([start, newEnd], {preserveFolds: true})
    @selection.cursor.goalColumn = goalColumn if goalColumn



      point = Point.max(point, Point.ZERO)

  screenPoint = editor.screenPositionForBufferPosition(point, clipDirection: direction)
  editor.bufferPositionForScreenPosition(screenPoint)

class SelectionWrapper
  constructor: (@selection) ->
