From 09c25baf6caa34774acbf04f1217bbcffd2d985e Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 30 Oct 2017 13:34:45 -0700 Subject: [PATCH 1/2] :arrow_up: text-buffer for DisplayLayer.onDidChangeSync change --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4ccff5107..678ec53e3 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "service-hub": "^0.7.4", "sinon": "1.17.4", "temp": "^0.8.3", - "text-buffer": "13.7.1", + "text-buffer": "13.8.0-display-layer-change-event-1", "typescript-simple": "1.0.0", "underscore-plus": "^1.6.6", "winreg": "^1.2.1", From 482824047c9c92a15d429577ed1eec8d8c49c16a Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 30 Oct 2017 17:26:21 -0700 Subject: [PATCH 2/2] :arrow_up: text-buffer --- package.json | 2 +- src/text-editor-component.js | 8 ++++++-- src/text-editor.coffee | 21 ++++++++++++++++++--- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 678ec53e3..8dfed5b41 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "service-hub": "^0.7.4", "sinon": "1.17.4", "temp": "^0.8.3", - "text-buffer": "13.8.0-display-layer-change-event-1", + "text-buffer": "13.8.0-display-layer-change-event-2", "typescript-simple": "1.0.0", "underscore-plus": "^1.6.6", "winreg": "^1.2.1", diff --git a/src/text-editor-component.js b/src/text-editor-component.js index f19b7e31c..b67b45f83 100644 --- a/src/text-editor-component.js +++ b/src/text-editor-component.js @@ -2456,8 +2456,12 @@ class TextEditorComponent { didChangeDisplayLayer (changes) { for (let i = 0; i < changes.length; i++) { - const {start, oldExtent, newExtent} = changes[i] - this.spliceLineTopIndex(start.row, oldExtent.row, newExtent.row) + const {oldRange, newRange} = changes[i] + this.spliceLineTopIndex( + newRange.start.row, + oldRange.end.row - oldRange.start.row, + newRange.end.row - newRange.start.row + ) } this.scheduleUpdate() diff --git a/src/text-editor.coffee b/src/text-editor.coffee index 79e00e31a..3bc5fa34e 100644 --- a/src/text-editor.coffee +++ b/src/text-editor.coffee @@ -468,10 +468,10 @@ class TextEditor extends Model subscribeToDisplayLayer: -> @disposables.add @tokenizedBuffer.onDidChangeGrammar @handleGrammarChange.bind(this) - @disposables.add @displayLayer.onDidChangeSync (e) => + @disposables.add @displayLayer.onDidChange (changes) => @mergeIntersectingSelections() - @component?.didChangeDisplayLayer(e) - @emitter.emit 'did-change', e + @component?.didChangeDisplayLayer(changes) + @emitter.emit 'did-change', changes.map (change) -> new ChangeEvent(change) @disposables.add @displayLayer.onDidReset => @mergeIntersectingSelections() @component?.didResetDisplayLayer() @@ -3911,3 +3911,18 @@ class TextEditor extends Model endRow++ new Range(new Point(startRow, 0), new Point(endRow, @buffer.lineLengthForRow(endRow))) + +class ChangeEvent + constructor: ({@oldRange, @newRange}) -> + + Object.defineProperty @prototype, 'start', { + get: -> @oldRange.start + } + + Object.defineProperty @prototype, 'oldExtent', { + get: -> @oldRange.getExtent() + } + + Object.defineProperty @prototype, 'newExtent', { + get: -> @newRange.getExtent() + }