mirror of
https://github.com/atom/atom.git
synced 2026-02-07 05:05:02 -05:00
Merge pull request #16031 from atom/mb-one-display-layer-event-per-tx
⬆️ text-buffer for DisplayLayer.onDidChangeSync change
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user