mirror of
https://github.com/atom/atom.git
synced 2026-02-05 12:15:07 -05:00
Simplify marker events
Instead of marker-added and marker-removed events which are emitted when markers are created/invalidated/revalidated/destroyed, we now just have marker-created events that are triggered *only* when markers are created for the first time. The marker itself emits a 'destroyed' event when it is destroyed. The marker already notifies observers when its validation status changes, so that's covered.
This commit is contained in:
@@ -165,6 +165,7 @@ class BufferMarker
|
||||
# Destroys the marker
|
||||
destroy: ->
|
||||
@buffer.destroyMarker(@id)
|
||||
@trigger 'destroyed'
|
||||
|
||||
# Returns a {Boolean} indicating whether the marker is valid. Markers can be
|
||||
# invalidated when a region surrounding them in the buffer is changed.
|
||||
|
||||
@@ -15,6 +15,7 @@ class DisplayBufferMarker
|
||||
|
||||
constructor: ({@bufferMarker, @displayBuffer}) ->
|
||||
@id = @bufferMarker.id
|
||||
@bufferMarker.on 'destroyed', => @destroyed()
|
||||
|
||||
###
|
||||
# Public #
|
||||
@@ -155,6 +156,9 @@ class DisplayBufferMarker
|
||||
# Internal #
|
||||
###
|
||||
|
||||
destroyed: ->
|
||||
delete @displayBuffer.markers[@id]
|
||||
|
||||
observeBufferMarkerIfNeeded: ->
|
||||
return if @subscriptionCount()
|
||||
@getHeadScreenPosition() # memoize current value
|
||||
|
||||
@@ -33,12 +33,7 @@ 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
|
||||
@buffer.on 'marker-created', (marker) => @trigger 'marker-created', @getMarker(marker.id)
|
||||
|
||||
buildLineMap: ->
|
||||
@lineMap = new LineMap
|
||||
|
||||
@@ -476,7 +476,7 @@ class Buffer
|
||||
attributes
|
||||
}, options))
|
||||
@validMarkers[marker.id] = marker
|
||||
@trigger 'marker-added', marker
|
||||
@trigger 'marker-created', marker
|
||||
marker
|
||||
|
||||
# Public: Constructs a new marker at a given position.
|
||||
@@ -650,7 +650,6 @@ class Buffer
|
||||
if marker = @validMarkers[id] ? @invalidMarkers[id]
|
||||
delete @validMarkers[id]
|
||||
delete @invalidMarkers[id]
|
||||
@trigger 'marker-removed', marker
|
||||
|
||||
scheduleModifiedEvents: ->
|
||||
clearTimeout(@stoppedChangingTimeout) if @stoppedChangingTimeout
|
||||
|
||||
Reference in New Issue
Block a user