Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit f0a7477

Browse files
author
Max Brunsfeld
authored
Merge pull request #221 from atom/mb-ns-avoid-legacy-hunk-fields
Update superstring
2 parents b5518f8 + e49c556 commit f0a7477

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
"yargs": "^6.5.0"
4646
},
4747
"dependencies": {
48-
"superstring": "1.1.0",
48+
"superstring": "1.2.1",
4949
"delegato": "^1.0.0",
5050
"diff": "^2.2.1",
5151
"emissary": "^1.0.0",

src/helpers.coffee

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
Point = require './point'
2+
{traversal} = require './point-helpers'
23

34
MULTI_LINE_REGEX_REGEX = /\\s|\\r|\\n|\r|\n|^\[\^|[^\\]\[\^/
45

@@ -28,8 +29,8 @@ module.exports =
2829
normalizePatchChanges: (changes) ->
2930
changes.map (change) -> {
3031
start: Point.fromObject(change.newStart)
31-
oldExtent: Point.fromObject(change.oldExtent)
32-
newExtent: Point.fromObject(change.newExtent)
32+
oldExtent: traversal(change.oldEnd, change.oldStart)
33+
newExtent: traversal(change.newEnd, change.newStart)
3334
newText: change.newText
3435
}
3536

src/marker-layer.coffee

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ class MarkerLayer
334334
destroyMarker: (marker) ->
335335
if @markersById.hasOwnProperty(marker.id)
336336
delete @markersById[marker.id]
337-
@index.delete(marker.id)
337+
@index.remove(marker.id)
338338
@markersWithChangeListeners.delete(marker)
339339
@markersWithDestroyListeners.delete(marker)
340340
@displayMarkerLayers.forEach (displayMarkerLayer) -> displayMarkerLayer.destroyMarker(marker.id)
@@ -359,7 +359,7 @@ class MarkerLayer
359359
{start, end} = Range.fromObject(range)
360360
start = @delegate.clipPosition(start)
361361
end = @delegate.clipPosition(end)
362-
@index.delete(id)
362+
@index.remove(id)
363363
@index.insert(id, start, end)
364364

365365
setMarkerIsExclusive: (id, exclusive) ->

src/text-buffer.coffee

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ MarkerLayer = require './marker-layer'
1313
MatchIterator = require './match-iterator'
1414
DisplayLayer = require './display-layer'
1515
{spliceArray, newlineRegex, normalizePatchChanges, regexIsSingleLine} = require './helpers'
16+
{traversal} = require './point-helpers'
1617

1718
class TransactionAbortedError extends Error
1819
constructor: -> super
@@ -623,7 +624,14 @@ class TextBuffer
623624

624625
oldRange = @clipRange(range)
625626
oldText = @getTextInRange(oldRange)
626-
change = {newStart: oldRange.start, oldExtent: oldRange.getExtent(), oldText, newText, normalizeLineEndings}
627+
change = {
628+
oldStart: oldRange.start,
629+
newStart: oldRange.start,
630+
oldEnd: oldRange.end,
631+
oldText,
632+
newText,
633+
normalizeLineEndings
634+
}
627635
@applyChange(change, undo isnt 'skip')
628636

629637
# Public: Insert text at the given position.
@@ -652,9 +660,10 @@ class TextBuffer
652660

653661
# Applies a change to the buffer based on its old range and new text.
654662
applyChange: (change, pushToHistory = false) ->
655-
{newStart, oldExtent, oldText, newText, normalizeLineEndings} = change
663+
{newStart, oldStart, oldEnd, oldText, newText, normalizeLineEndings} = change
656664
@cachedText = null
657665

666+
oldExtent = traversal(oldEnd, oldStart)
658667
start = Point.fromObject(newStart)
659668
oldRange = Range(start, start.traverse(oldExtent))
660669
oldRange.freeze()
@@ -694,6 +703,7 @@ class TextBuffer
694703
newRange.freeze()
695704

696705
if pushToHistory
706+
change.oldExtent ?= oldExtent
697707
change.newExtent ?= newExtent
698708
@history?.pushChange(change)
699709

0 commit comments

Comments
 (0)