mirror of
https://github.com/atom/atom.git
synced 2026-04-06 03:02:13 -04:00
Emit 'marker-added/removed' when buffer markers are created/destroyed
This commit is contained in:
@@ -781,6 +781,12 @@ describe 'Buffer', ->
|
||||
expect(buffer.positionForCharacterIndex(20)).toEqual [3, 0]
|
||||
|
||||
describe "markers", ->
|
||||
[markerAddedHandler, markerRemovedHandler] = []
|
||||
|
||||
beforeEach ->
|
||||
buffer.on('marker-added', markerAddedHandler = jasmine.createSpy("markerAddedHandler"))
|
||||
buffer.on('marker-removed', markerRemovedHandler = jasmine.createSpy("markerRemovedHandler"))
|
||||
|
||||
describe "marker creation", ->
|
||||
it "allows markers to be created with ranges and positions", ->
|
||||
marker1 = buffer.markRange([[4, 20], [4, 23]])
|
||||
@@ -800,6 +806,10 @@ describe 'Buffer', ->
|
||||
expect(marker.getHeadPosition()).toEqual [4, 20]
|
||||
expect(marker.getTailPosition()).toEqual [4, 23]
|
||||
|
||||
it "emits the 'marker-added' event when markers are created", ->
|
||||
marker = buffer.markRange([[4, 20], [4, 23]])
|
||||
expect(markerAddedHandler).toHaveBeenCalledWith(marker)
|
||||
|
||||
describe "marker manipulation", ->
|
||||
marker = null
|
||||
beforeEach ->
|
||||
@@ -995,6 +1005,10 @@ describe 'Buffer', ->
|
||||
buffer.undo()
|
||||
expect(buffer.getMarker(marker2.id)).toBeUndefined()
|
||||
|
||||
it "emits 'marker-removed' when markers are destroyed", ->
|
||||
marker.destroy()
|
||||
expect(markerRemovedHandler).toHaveBeenCalledWith(marker)
|
||||
|
||||
describe "marker updates due to buffer changes", ->
|
||||
[marker1, marker2, marker3] = []
|
||||
|
||||
|
||||
@@ -476,6 +476,8 @@ class Buffer
|
||||
attributes
|
||||
}, options))
|
||||
@validMarkers[marker.id] = marker
|
||||
@trigger 'marker-added', marker
|
||||
marker
|
||||
|
||||
# Public: Constructs a new marker at a given position.
|
||||
#
|
||||
@@ -645,8 +647,10 @@ class Buffer
|
||||
###
|
||||
|
||||
destroyMarker: (id) ->
|
||||
delete @validMarkers[id]
|
||||
delete @invalidMarkers[id]
|
||||
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