   getSelectedTexts: ->
     @editor.getSelections().map((selection) -> selection.getText()).join("\n")
 
+  insertTextAtPoint: (point, text) ->
+    @editor.setTextInBufferRange([point, point], text)
+
   isOverwrite: ->
     atom.config.get('vim-mode-plus-move-selected-text.overwrite')
 

    if @direction is 'right'
      eol = selection.getBufferRange().end
      if pointIsAtEndOfLine(@editor, eol)
        @editor.setTextInBufferRange([eol, eol], " ")

    @rotateTextForSelection(selection)
    @editor.scrollToCursorPosition({center: true})

  isCharacterwise: ->
    not @isLinewise()

  setTextInRangeAndSelect: (range, text, selection) ->
    newRange = @editor.setTextInBufferRange(range, text)
    selection.setBufferRange(newRange)

  complementSpacesToPoint: ({row, column}) ->
    eol = @editor.bufferRangeForBufferRow(row).end
    if (fillCount = column - eol.column) > 0
      @insertTextAtPoint(eol, ' '.repeat(fillCount))

  isMovable: (selection) ->
    {start} = selection.getBufferRange()
