mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Emit 'marker-added/removed' events on DisplayBuffer
This commit is contained in:
@@ -737,3 +737,22 @@ describe "DisplayBuffer", ->
|
||||
marker.destroy()
|
||||
expect(marker.isValid()).toBeFalsy()
|
||||
expect(displayBuffer.getMarker(marker.id)).toBeUndefined()
|
||||
|
||||
describe "marker-added and marker-removed events", ->
|
||||
it "emits the appropriate event when a marker is created, destroyed, or its validity changes", ->
|
||||
displayBuffer.on 'marker-added', markerAddedHandler = jasmine.createSpy("markerAddedHandler")
|
||||
displayBuffer.on 'marker-removed', markerRemovedHandler = jasmine.createSpy("markerRemovedHandler")
|
||||
|
||||
marker = displayBuffer.markBufferRange([[5, 4], [5, 10]])
|
||||
expect(markerAddedHandler).toHaveBeenCalledWith(marker)
|
||||
markerAddedHandler.reset()
|
||||
|
||||
buffer.change([[5, 3], [5, 11]], 'hey')
|
||||
expect(markerRemovedHandler).toHaveBeenCalledWith(marker)
|
||||
markerRemovedHandler.reset()
|
||||
|
||||
buffer.undo()
|
||||
expect(markerAddedHandler).toHaveBeenCalledWith(marker)
|
||||
|
||||
marker.destroy()
|
||||
expect(markerRemovedHandler).toHaveBeenCalledWith(marker)
|
||||
|
||||
@@ -33,6 +33,12 @@ class DisplayBuffer
|
||||
@tokenizedBuffer.on 'grammar-changed', (grammar) => @trigger 'grammar-changed', grammar
|
||||
@tokenizedBuffer.on 'changed', @handleTokenizedBufferChange
|
||||
@buffer.on 'markers-updated', @handleMarkersUpdated
|
||||
@buffer.on 'marker-added', (marker) =>
|
||||
@trigger 'marker-added', @getMarker(marker.id)
|
||||
@buffer.on 'marker-removed', (marker) =>
|
||||
marker = @getMarker(marker.id)
|
||||
delete @markers[marker.id]
|
||||
@trigger 'marker-removed', marker
|
||||
|
||||
buildLineMap: ->
|
||||
@lineMap = new LineMap
|
||||
@@ -468,7 +474,7 @@ class DisplayBuffer
|
||||
#
|
||||
# Returns the {DisplayBufferMarker} (if it exists).
|
||||
getMarker: (id) ->
|
||||
@markers[id] ? do =>
|
||||
@markers[id] ?= do =>
|
||||
if bufferMarker = @buffer.getMarker(id)
|
||||
new DisplayBufferMarker({bufferMarker, displayBuffer: this})
|
||||
|
||||
@@ -548,7 +554,6 @@ class DisplayBuffer
|
||||
###
|
||||
# Internal #
|
||||
###
|
||||
|
||||
pauseMarkerObservers: ->
|
||||
marker.pauseEvents() for marker in @getMarkers()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user