From a3332571a997d25706854eaa54200c35fae6194e Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Wed, 1 Feb 2012 15:57:37 -0800 Subject: [PATCH] Remove backspace and change implementation of delete. A selection will only delete what is selected. Otherwise it will leave the buffer unmodified. --- spec/atom/selection-spec.coffee | 24 ++++++++++++++++++++++++ src/atom/selection.coffee | 24 +----------------------- 2 files changed, 25 insertions(+), 23 deletions(-) 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()