Merge pull request #11139 from atom/ld-change-range-event

Add Selection.onDidChangeRange event object to emitter
This commit is contained in:
Ash Wilson
2018-08-29 16:10:59 -04:00
committed by GitHub
2 changed files with 16 additions and 3 deletions

View File

@@ -85,6 +85,17 @@ describe('Selection', () => {
})
})
describe("when the selection's range is moved", () => {
it('notifies ::onDidChangeRange observers', () => {
selection.setBufferRange([[2, 0], [2, 10]])
const changeScreenRangeHandler = jasmine.createSpy('changeScreenRangeHandler')
selection.onDidChangeRange(changeScreenRangeHandler)
buffer.insert([2, 5], 'abc')
expect(changeScreenRangeHandler).toHaveBeenCalled()
expect(changeScreenRangeHandler.mostRecentCall.args[0]).not.toBeUndefined()
});
});
describe("when only the selection's tail is moved (regression)", () => {
it('notifies ::onDidChangeRange observers', () => {
selection.setBufferRange([[2, 0], [2, 10]], {reversed: true})
@@ -93,6 +104,7 @@ describe('Selection', () => {
buffer.insert([2, 5], 'abc')
expect(changeScreenRangeHandler).toHaveBeenCalled()
expect(changeScreenRangeHandler.mostRecentCall.args[0]).not.toBeUndefined()
})
})

View File

@@ -1037,14 +1037,15 @@ class Selection {
this.editor.cursorMoved(cursorMovedEvent)
}
this.emitter.emit('did-change-range')
this.editor.selectionRangeChanged({
const rangeChangedEvent = {
oldBufferRange: new Range(oldHeadBufferPosition, oldTailBufferPosition),
oldScreenRange: new Range(oldHeadScreenPosition, oldTailScreenPosition),
newBufferRange: this.getBufferRange(),
newScreenRange: this.getScreenRange(),
selection: this
})
}
this.emitter.emit('did-change-range', rangeChangedEvent)
this.editor.selectionRangeChanged(rangeChangedEvent)
}
markerDidDestroy () {