From 22175780f239f2e25a85ce840083fdb770a77ccd Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 2 Mar 2017 16:30:24 -0800 Subject: [PATCH 1/4] Use MarkerIndex.remove instead of .delete --- src/marker-layer.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/marker-layer.coffee b/src/marker-layer.coffee index d044ead63b..b27d83802f 100644 --- a/src/marker-layer.coffee +++ b/src/marker-layer.coffee @@ -337,7 +337,7 @@ class MarkerLayer destroyMarker: (marker) -> if @markersById.hasOwnProperty(marker.id) delete @markersById[marker.id] - @index.delete(marker.id) + @index.remove(marker.id) @markersWithChangeListeners.delete(marker) @markersWithDestroyListeners.delete(marker) @displayMarkerLayers.forEach (displayMarkerLayer) -> displayMarkerLayer.destroyMarker(marker.id) @@ -363,7 +363,7 @@ class MarkerLayer {start, end} = Range.fromObject(range) start = @delegate.clipPosition(start) end = @delegate.clipPosition(end) - @index.delete(id) + @index.remove(id) @index.insert(id, start, end) setMarkerIsExclusive: (id, exclusive) -> From 8a40a6fffc61b1816fdf601b55945666f2fd9e04 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 6 Mar 2017 15:42:37 -0800 Subject: [PATCH 2/4] Avoid using legacy patch hunk fields Signed-off-by: Nathan Sobo --- src/helpers.coffee | 5 +++-- src/text-buffer.coffee | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/helpers.coffee b/src/helpers.coffee index 4db84e2ccf..cd000f0ece 100644 --- a/src/helpers.coffee +++ b/src/helpers.coffee @@ -1,4 +1,5 @@ Point = require './point' +{traversal} = require './point-helpers' MULTI_LINE_REGEX_REGEX = /\\s|\\r|\\n|\r|\n|^\[\^|[^\\]\[\^/ @@ -28,8 +29,8 @@ module.exports = normalizePatchChanges: (changes) -> changes.map (change) -> { start: Point.fromObject(change.newStart) - oldExtent: Point.fromObject(change.oldExtent) - newExtent: Point.fromObject(change.newExtent) + oldExtent: traversal(change.oldEnd, change.oldStart) + newExtent: traversal(change.newEnd, change.newStart) newText: change.newText } diff --git a/src/text-buffer.coffee b/src/text-buffer.coffee index 733aa729a2..a792c66a66 100644 --- a/src/text-buffer.coffee +++ b/src/text-buffer.coffee @@ -13,6 +13,7 @@ MarkerLayer = require './marker-layer' MatchIterator = require './match-iterator' DisplayLayer = require './display-layer' {spliceArray, newlineRegex, normalizePatchChanges, regexIsSingleLine} = require './helpers' +{traversal} = require './point-helpers' class TransactionAbortedError extends Error constructor: -> super @@ -622,7 +623,14 @@ class TextBuffer oldRange = @clipRange(range) oldText = @getTextInRange(oldRange) - change = {newStart: oldRange.start, oldExtent: oldRange.getExtent(), oldText, newText, normalizeLineEndings} + change = { + oldStart: oldRange.start, + newStart: oldRange.start, + oldEnd: oldRange.end, + oldText, + newText, + normalizeLineEndings + } @applyChange(change, undo isnt 'skip') # Public: Insert text at the given position. @@ -651,9 +659,10 @@ class TextBuffer # Applies a change to the buffer based on its old range and new text. applyChange: (change, pushToHistory = false) -> - {newStart, oldExtent, oldText, newText, normalizeLineEndings} = change + {newStart, oldStart, oldEnd, oldText, newText, normalizeLineEndings} = change @cachedText = null + oldExtent = traversal(oldEnd, oldStart) start = Point.fromObject(newStart) oldRange = Range(start, start.traverse(oldExtent)) oldRange.freeze() @@ -693,6 +702,7 @@ class TextBuffer newRange.freeze() if pushToHistory + change.oldExtent ?= oldExtent change.newExtent ?= newExtent @history?.pushChange(change) From 7b5cda6f66dba4c84a627f0595e46c1513fb8a1f Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 6 Mar 2017 15:43:44 -0800 Subject: [PATCH 3/4] :arrow_up: superstring --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b7a73b2920..eb45db1de4 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "yargs": "^6.5.0" }, "dependencies": { - "superstring": "1.1.0", + "superstring": "1.2.0", "delegato": "^1.0.0", "diff": "^2.2.1", "emissary": "^1.0.0", From e49c556702cf94d0c1767b6ed366e6631b184092 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 6 Mar 2017 15:57:25 -0800 Subject: [PATCH 4/4] :arrow_up: superstring --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index eb45db1de4..e3d6fd72f9 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "yargs": "^6.5.0" }, "dependencies": { - "superstring": "1.2.0", + "superstring": "1.2.1", "delegato": "^1.0.0", "diff": "^2.2.1", "emissary": "^1.0.0",