From e02e4cd975de408cc214c1a69ee7ddd722231749 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 24 Apr 2013 18:10:16 -0600 Subject: [PATCH] Add DisplayBuffer.findMarker[s] --- spec/app/display-buffer-spec.coffee | 10 ++++++++++ src/app/display-buffer.coffee | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/spec/app/display-buffer-spec.coffee b/spec/app/display-buffer-spec.coffee index cc4d9caf9..0d27113a3 100644 --- a/spec/app/display-buffer-spec.coffee +++ b/spec/app/display-buffer-spec.coffee @@ -726,6 +726,16 @@ describe "DisplayBuffer", -> expect(changeHandler).toHaveBeenCalled() expect(observeHandler).toHaveBeenCalled() + describe ".findMarkers(attributes)", -> + it "allows the startBufferRow and endBufferRow to be specified", -> + marker1 = displayBuffer.markBufferRange([[0, 0], [3, 0]], class: 'a') + marker2 = displayBuffer.markBufferRange([[0, 0], [5, 0]], class: 'a') + marker3 = displayBuffer.markBufferRange([[9, 0], [10, 0]], class: 'b') + + expect(displayBuffer.findMarkers(class: 'a', startBufferRow: 0)).toEqual [marker2, marker1] + expect(displayBuffer.findMarkers(class: 'a', startBufferRow: 0, endBufferRow: 3)).toEqual [marker1] + expect(displayBuffer.findMarkers(endBufferRow: 10)).toEqual [marker3] + describe "marker destruction", -> it "allows markers to be destroyed", -> marker = displayBuffer.markScreenRange([[5, 4], [5, 10]]) diff --git a/src/app/display-buffer.coffee b/src/app/display-buffer.coffee index 75ad54ab5..1446b6269 100644 --- a/src/app/display-buffer.coffee +++ b/src/app/display-buffer.coffee @@ -673,6 +673,16 @@ class DisplayBuffer observeMarker: (id, callback) -> @getMarker(id).observe(callback) + findMarker: (attributes) -> + @findMarkers(attributes)[0] + + findMarkers: (attributes) -> + { startBufferRow, endBufferRow } = attributes + attributes.startRow = startBufferRow if startBufferRow? + attributes.endRow = endBufferRow if endBufferRow? + attributes = _.omit(attributes, ['startBufferRow', 'endBufferRow']) + @buffer.findMarkers(attributes) + ### # Internal # ###