From d6fc3e6d0145ba6cdc101f498f4fd52d87ea0808 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 11 Feb 2014 13:18:10 -0800 Subject: [PATCH] Move insertDelta computation under transact call --- src/editor.coffee | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/editor.coffee b/src/editor.coffee index c9e15a883..adfcd2c65 100644 --- a/src/editor.coffee +++ b/src/editor.coffee @@ -628,19 +628,20 @@ class Editor extends Model lastRow = @buffer.getLastRow() return if selection.isEmpty() and selection.start.row is lastRow and @buffer.getLastLine() is '' - # Move line around the fold that is directly above the selection - precedingScreenRow = @screenPositionForBufferPosition([selection.start.row]).translate([-1]) - precedingBufferRow = @bufferPositionForScreenPosition(precedingScreenRow).row - if fold = @largestFoldContainingBufferRow(precedingBufferRow) - insertDelta = fold.getBufferRange().getRowCount() - else - insertDelta = 1 - @transact => foldedRows = [] rows = [selection.start.row..selection.end.row] if selection.start.row isnt selection.end.row and selection.end.column is 0 rows.pop() unless @isFoldedAtBufferRow(selection.end.row) + + # Move line around the fold that is directly above the selection + precedingScreenRow = @screenPositionForBufferPosition([selection.start.row]).translate([-1]) + precedingBufferRow = @bufferPositionForScreenPosition(precedingScreenRow).row + if fold = @largestFoldContainingBufferRow(precedingBufferRow) + insertDelta = fold.getBufferRange().getRowCount() + else + insertDelta = 1 + for row in rows if fold = @displayBuffer.largestFoldStartingAtBufferRow(row) bufferRange = fold.getBufferRange()