diff --git a/spec/atom/selection-spec.coffee b/spec/atom/selection-spec.coffee index 0e8e59bc7..9effd1a7e 100644 --- a/spec/atom/selection-spec.coffee +++ b/spec/atom/selection-spec.coffee @@ -19,6 +19,30 @@ describe "Selection", -> expect(selection.anchor.getPosition()).toEqual range.start expect(selection.cursor.getPosition()).toEqual range.end + describe ".delete()", -> + describe "when nothing is selected", -> + it "deletes nothing", -> + selection.setRange new Range([0,3], [0,3]) + selection.delete() + expect(editor.buffer.getLine(0)).toBe "var quicksort = function () {" + + describe "when one line is selected", -> + it "deletes selected text", -> + selection.setRange new Range([0,4], [0,14]) + selection.delete() + expect(editor.buffer.getLine(0)).toBe "var = function () {" + + endOfLine = editor.buffer.getLine(0).length + selection.setRange new Range([0,0], [0, endOfLine]) + selection.delete() + expect(editor.buffer.getLine(0)).toBe "" + + describe "when multiple lines are selected", -> + it "deletes selected text", -> + selection.setRange new Range([0,1], [2,39]) + selection.delete() + expect(editor.buffer.getLine(0)).toBe "v;" + describe ".updateAppearence()", -> [charWidth, lineHeight] = [] diff --git a/src/atom/selection.coffee b/src/atom/selection.coffee index ab7db1dd2..d34b85e05 100644 --- a/src/atom/selection.coffee +++ b/src/atom/selection.coffee @@ -81,31 +81,9 @@ class Selection extends Template insertNewline: -> @insertText('\n') - backspace: -> - range = @getRange() - - if range.isEmpty() - if range.start.column == 0 - return if range.start.row == 0 - range.start.column = @editor.buffer.getLine(range.start.row - 1).length - range.start.row-- - else - range.start.column-- - - @editor.buffer.change(range, '') - delete: -> range = @getRange() - - if range.isEmpty() - if range.end.column == @editor.buffer.getLine(range.end.row).length - return if range.end.row == @editor.buffer.numLines() - 1 - range.end.column = 0 - range.end.row++ - else - range.end.column++ - - @editor.buffer.change(range, '') + @editor.buffer.change(range, '') unless range.isEmpty() isEmpty: -> @getRange().isEmpty()