From 6670cc8aa089cb22fc2b7cb52976013ee4b99901 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Wed, 25 Feb 2015 10:42:39 +0100 Subject: [PATCH] :racehorse: Speed up `mergeCursors` --- src/text-editor.coffee | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/text-editor.coffee b/src/text-editor.coffee index 8badd9287..76948990d 100644 --- a/src/text-editor.coffee +++ b/src/text-editor.coffee @@ -1797,13 +1797,12 @@ class TextEditor extends Model # Merge cursors that have the same screen position mergeCursors: -> - positions = [] - for cursor in @getCursors() - position = cursor.getBufferPosition().toString() - if position in positions - cursor.destroy() - else - positions.push(position) + [lastCursor, cursors...] = @getCursorsOrderedByBufferPosition() + lastBufferPosition = lastCursor.getBufferPosition() + for cursor in cursors + currentBufferPosition = cursor.getBufferPosition() + cursor.destroy() if lastBufferPosition.compare(currentBufferPosition) == 0 + lastBufferPosition = currentBufferPosition preserveCursorPositionOnBufferReload: -> cursorPosition = null