mirror of
https://github.com/atom/atom.git
synced 2026-01-24 22:38:20 -05:00
meta-x removes text from buffer and places it on the clipboard
This commit is contained in:
@@ -512,20 +512,16 @@ describe "Editor", ->
|
||||
expect(editor.clipPosition(row: 1, column: -5)).toEqual(row: 1, column: 0)
|
||||
|
||||
describe "cut, copy & paste", ->
|
||||
describe "when a paste event is triggered", ->
|
||||
beforeEach ->
|
||||
atom.native.writeToPasteboard('first')
|
||||
expect(atom.native.readFromPasteboard()).toBe 'first'
|
||||
beforeEach ->
|
||||
atom.native.writeToPasteboard('first')
|
||||
expect(atom.native.readFromPasteboard()).toBe 'first'
|
||||
|
||||
it "pastes text into the buffer", ->
|
||||
editor.setCursorPosition [0, 4]
|
||||
editor.trigger "paste"
|
||||
expect(editor.buffer.getLine(0)).toBe "var firstquicksort = function () {"
|
||||
|
||||
editor.getSelection().setRange new Range([1,6], [1,10])
|
||||
editor.trigger "paste"
|
||||
expect(editor.buffer.getLine(1)).toBe " var first = function(items) {"
|
||||
expect(editor.buffer.getLine(1)).toBe " var sort = function(items) {"
|
||||
describe "when a cut event is triggered", ->
|
||||
it "removes the selected text from the buffer and places it on the pasteboard", ->
|
||||
editor.getSelection().setRange new Range([0,4], [0,9])
|
||||
editor.trigger "cut"
|
||||
expect(editor.buffer.getLine(0)).toBe "var sort = function () {"
|
||||
expect(atom.native.readFromPasteboard()).toBe 'quick'
|
||||
|
||||
describe "when a copy event is triggered", ->
|
||||
it "copies selected text onto the clipboard", ->
|
||||
@@ -533,3 +529,14 @@ describe "Editor", ->
|
||||
editor.trigger "copy"
|
||||
expect(atom.native.readFromPasteboard()).toBe 'quicksort'
|
||||
|
||||
describe "when a paste event is triggered", ->
|
||||
it "pastes text into the buffer", ->
|
||||
editor.setCursorPosition [0, 4]
|
||||
editor.trigger "paste"
|
||||
expect(editor.buffer.getLine(0)).toBe "var firstquicksort = function () {"
|
||||
|
||||
expect(editor.buffer.getLine(1)).toBe " var sort = function(items) {"
|
||||
editor.getSelection().setRange new Range([1,6], [1,10])
|
||||
editor.trigger "paste"
|
||||
expect(editor.buffer.getLine(1)).toBe " var first = function(items) {"
|
||||
|
||||
|
||||
@@ -118,6 +118,28 @@ describe "Selection", ->
|
||||
expect(selection.regions.length).toBe 3
|
||||
expect(selection.find('.selection').length).toBe 3
|
||||
|
||||
describe ".cut()", ->
|
||||
beforeEach ->
|
||||
atom.native.writeToPasteboard('first')
|
||||
expect(atom.native.readFromPasteboard()).toBe 'first'
|
||||
|
||||
it "removes selected text from the buffer and places it on the clipboard", ->
|
||||
selection.setRange new Range([0,4], [0,13])
|
||||
selection.cut()
|
||||
expect(atom.native.readFromPasteboard()).toBe 'quicksort'
|
||||
expect(editor.buffer.getLine(0)).toBe "var = function () {"
|
||||
expect(selection.isEmpty()).toBeTruthy()
|
||||
|
||||
selection.setRange new Range([1,6], [3,8])
|
||||
selection.cut()
|
||||
expect(atom.native.readFromPasteboard()).toBe "sort = function(items) {\n if (items.length <= 1) return items;\n var "
|
||||
expect(editor.buffer.getLine(1)).toBe " var pivot = items.shift(), current, left = [], right = [];"
|
||||
|
||||
it "places nothing on the clipboard when there is no selection", ->
|
||||
selection.setRange new Range([0,4], [0,4])
|
||||
selection.copy()
|
||||
expect(atom.native.readFromPasteboard()).toBe 'first'
|
||||
|
||||
describe ".copy()", ->
|
||||
beforeEach ->
|
||||
atom.native.writeToPasteboard('first')
|
||||
@@ -136,4 +158,3 @@ describe "Selection", ->
|
||||
selection.setRange new Range([0,4], [0,4])
|
||||
selection.copy()
|
||||
expect(atom.native.readFromPasteboard()).toBe 'first'
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ class Editor extends Template
|
||||
enter: 'newline'
|
||||
backspace: 'delete-left'
|
||||
delete: 'delete-right'
|
||||
'meta-x': 'cut'
|
||||
'meta-c': 'copy'
|
||||
'meta-v': 'paste'
|
||||
|
||||
@@ -58,6 +59,7 @@ class Editor extends Template
|
||||
@on 'newline', => @insertNewline()
|
||||
@on 'delete-left', => @deleteLeft()
|
||||
@on 'delete-right', => @deleteRight()
|
||||
@on 'cut', => @cutSelection()
|
||||
@on 'copy', => @copySelection()
|
||||
@on 'paste', => @paste()
|
||||
|
||||
@@ -201,6 +203,7 @@ class Editor extends Template
|
||||
insertText: (text) -> @selection.insertText(text)
|
||||
insertNewline: -> @selection.insertNewline()
|
||||
|
||||
cutSelection: -> @selection.cut()
|
||||
copySelection: -> @selection.copy()
|
||||
paste: -> @selection.insertText(atom.native.readFromPasteboard())
|
||||
|
||||
|
||||
@@ -125,9 +125,11 @@ class Selection extends Template
|
||||
moveCursorToLineStart: ->
|
||||
@cursor.moveToLineStart()
|
||||
|
||||
cut: ->
|
||||
@copy()
|
||||
@delete()
|
||||
|
||||
copy: ->
|
||||
return if @isEmpty()
|
||||
|
||||
text = @editor.buffer.getTextInRange @getRange()
|
||||
atom.native.writeToPasteboard text
|
||||
|
||||
|
||||
Reference in New Issue
Block a user