From aabde38f614ac781b230c92e3e965759c480cd49 Mon Sep 17 00:00:00 2001 From: Machiste Quintana Date: Sun, 3 May 2015 23:32:52 -0400 Subject: [PATCH] Fix case when selection is at the beginning or end of a line --- src/text-editor.coffee | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/text-editor.coffee b/src/text-editor.coffee index 720171c0a..0594b7365 100644 --- a/src/text-editor.coffee +++ b/src/text-editor.coffee @@ -942,14 +942,15 @@ class TextEditor extends Model for selection in selections charToLeftOfSelection = new Range(selection.start.translate(translationDelta), selection.start) - insertionPoint = selection.end - text = @buffer.getTextInRange(charToLeftOfSelection) + unless charToLeftOfSelection.start.column < 0 + insertionPoint = selection.end + text = @buffer.getTextInRange(charToLeftOfSelection) - @buffer.insert(insertionPoint, text) - @buffer.delete(charToLeftOfSelection) - translatedRanges.push(selection.translate(translationDelta)) + @buffer.insert(insertionPoint, text) + @buffer.delete(charToLeftOfSelection) + translatedRanges.push(selection.translate(translationDelta)) - @setSelectedBufferRanges(translatedRanges) + @setSelectedBufferRanges(translatedRanges) if translatedRanges.length > 0 moveSelectionRight: -> selections = @getSelectedBufferRanges() @@ -961,14 +962,15 @@ class TextEditor extends Model for selection in selections charToRightOfSelection = new Range(selection.end, selection.end.translate(translationDelta)) - insertionPoint = selection.start - text = @buffer.getTextInRange(charToRightOfSelection) + unless charToRightOfSelection.end.column > @buffer.lineLengthForRow(charToRightOfSelection.end.row) + insertionPoint = selection.start + text = @buffer.getTextInRange(charToRightOfSelection) - @buffer.delete(charToRightOfSelection) - @buffer.insert(insertionPoint, text) - translatedRanges.push(selection.translate(translationDelta)) + @buffer.delete(charToRightOfSelection) + @buffer.insert(insertionPoint, text) + translatedRanges.push(selection.translate(translationDelta)) - @setSelectedBufferRanges(translatedRanges) + @setSelectedBufferRanges(translatedRanges) if translatedRanges.length > 0 # Duplicate the most recent cursor's current line. duplicateLines: ->