diff --git a/spec/app/text-buffer-spec.coffee b/spec/app/text-buffer-spec.coffee index 68aa8872d..742795076 100644 --- a/spec/app/text-buffer-spec.coffee +++ b/spec/app/text-buffer-spec.coffee @@ -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]]) diff --git a/src/app/buffer-marker.coffee b/src/app/buffer-marker.coffee index 27f6598c3..e86ad89d9 100644 --- a/src/app/buffer-marker.coffee +++ b/src/app/buffer-marker.coffee @@ -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