Emit 'marker-added/removed' events when buffer marker validity changes

This commit is contained in:
Nathan Sobo
2013-04-29 11:50:27 -06:00
parent 883127f0d6
commit 3a39c92ae4
2 changed files with 13 additions and 0 deletions

View File

@@ -1185,6 +1185,17 @@ describe 'Buffer', ->
expect(marker4.isValid()).toBeTruthy()
expect(marker4.getRange()).toEqual [[4, 20], [4, 23]]
it "emits 'marker-added' and 'marker-removed' events when markers are invalidated or revalidated", ->
marker2.destroy()
marker3.destroy()
markerRemovedHandler.reset()
buffer.change([[4, 21], [4, 24]], "foo")
expect(markerRemovedHandler).toHaveBeenCalledWith(marker1)
buffer.undo()
expect(markerAddedHandler).toHaveBeenCalledWith(marker1)
describe ".markersForPosition(position)", ->
it "returns all markers that intersect the given position", ->
m1 = buffer.markRange([[3, 4], [3, 10]])

View File

@@ -260,10 +260,12 @@ class BufferMarker
delete @buffer.validMarkers[@id]
@buffer.invalidMarkers[@id] = this
@notifyObservers(bufferChanged: true)
@buffer.trigger 'marker-removed', this
revalidate: ->
delete @buffer.invalidMarkers[@id]
@buffer.validMarkers[@id] = this
@notifyObservers(bufferChanged: true)
@buffer.trigger 'marker-added', this
_.extend BufferMarker.prototype, EventEmitter