aboutsummaryrefslogtreecommitdiff
path: root/atom/packages/vim-mode/lib/operators/put-operator.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'atom/packages/vim-mode/lib/operators/put-operator.coffee')
-rw-r--r--atom/packages/vim-mode/lib/operators/put-operator.coffee73
1 files changed, 0 insertions, 73 deletions
diff --git a/atom/packages/vim-mode/lib/operators/put-operator.coffee b/atom/packages/vim-mode/lib/operators/put-operator.coffee
deleted file mode 100644
index 611d6fa..0000000
--- a/atom/packages/vim-mode/lib/operators/put-operator.coffee
+++ /dev/null
@@ -1,73 +0,0 @@
-_ = require 'underscore-plus'
-{Operator} = require './general-operators'
-settings = require '../settings'
-
-module.exports =
-#
-# It pastes everything contained within the specifed register
-#
-class Put extends Operator
- register: null
-
- constructor: (@editor, @vimState, {@location}={}) ->
- @location ?= 'after'
- @complete = true
- @register = settings.defaultRegister()
-
- # Public: Pastes the text in the given register.
- #
- # count - The number of times to execute.
- #
- # Returns nothing.
- execute: (count=1) ->
- {text, type} = @vimState.getRegister(@register) or {}
- return unless text
-
- textToInsert = _.times(count, -> text).join('')
-
- selection = @editor.getSelectedBufferRange()
- if selection.isEmpty()
- # Clean up some corner cases on the last line of the file
- if type is 'linewise'
- textToInsert = textToInsert.replace(/\n$/, '')
- if @location is 'after' and @onLastRow()
- textToInsert = "\n#{textToInsert}"
- else
- textToInsert = "#{textToInsert}\n"
-
- if @location is 'after'
- if type is 'linewise'
- if @onLastRow()
- @editor.moveToEndOfLine()
-
- originalPosition = @editor.getCursorScreenPosition()
- originalPosition.row += 1
- else
- @editor.moveDown()
- else
- unless @onLastColumn()
- @editor.moveRight()
-
- if type is 'linewise' and not originalPosition?
- @editor.moveToBeginningOfLine()
- originalPosition = @editor.getCursorScreenPosition()
-
- @editor.insertText(textToInsert)
-
- if originalPosition?
- @editor.setCursorScreenPosition(originalPosition)
- @editor.moveToFirstCharacterOfLine()
-
- if type isnt 'linewise'
- @editor.moveLeft()
- @vimState.activateNormalMode()
-
- # Private: Helper to determine if the editor is currently on the last row.
- #
- # Returns true on the last row and false otherwise.
- onLastRow: ->
- {row, column} = @editor.getCursorBufferPosition()
- row is @editor.getBuffer().getLastRow()
-
- onLastColumn: ->
- @editor.getLastCursor().isAtEndOfLine()