diff options
Diffstat (limited to 'atom/packages/vim-mode/lib/operators/put-operator.coffee')
| -rw-r--r-- | atom/packages/vim-mode/lib/operators/put-operator.coffee | 73 |
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() |