From 8479e1c34f5866d97998e9fdcfdf6e39cdbb74ec Mon Sep 17 00:00:00 2001 From: Machiste Quintana Date: Sun, 3 May 2015 23:59:33 -0400 Subject: [PATCH] Fix selection behavior at beginning or end of line --- src/text-editor.coffee | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/text-editor.coffee b/src/text-editor.coffee index 8ecd5bf40..c35438cdb 100644 --- a/src/text-editor.coffee +++ b/src/text-editor.coffee @@ -942,14 +942,16 @@ class TextEditor extends Model for selection in selections charToLeftOfSelection = new Range(selection.start.translate(translationDelta), selection.start) - unless charToLeftOfSelection.start.column < 0 + if charToLeftOfSelection.start.column < 0 + translatedRanges.push(selection) + else text = @buffer.getTextInRange(charToLeftOfSelection) @buffer.insert(selection.end, text) @buffer.delete(charToLeftOfSelection) translatedRanges.push(selection.translate(translationDelta)) - @setSelectedBufferRanges(translatedRanges) if translatedRanges.length > 0 + @setSelectedBufferRanges(translatedRanges) moveSelectionRight: -> selections = @getSelectedBufferRanges() @@ -961,14 +963,16 @@ class TextEditor extends Model for selection in selections charToRightOfSelection = new Range(selection.end, selection.end.translate(translationDelta)) - unless charToRightOfSelection.end.column > @buffer.lineLengthForRow(charToRightOfSelection.end.row) + if charToRightOfSelection.end.column > @buffer.lineLengthForRow(charToRightOfSelection.end.row) + translatedRanges.push(selection) + else text = @buffer.getTextInRange(charToRightOfSelection) @buffer.delete(charToRightOfSelection) @buffer.insert(selection.start, text) translatedRanges.push(selection.translate(translationDelta)) - @setSelectedBufferRanges(translatedRanges) if translatedRanges.length > 0 + @setSelectedBufferRanges(translatedRanges) # Duplicate the most recent cursor's current line. duplicateLines: ->