mirror of
https://github.com/atom/atom.git
synced 2026-01-24 06:18:03 -05:00
Add eachBuffer helper to RootView
This allows extensions to bind a callback to all current and future buffers.
This commit is contained in:
@@ -718,3 +718,31 @@ describe "RootView", ->
|
||||
rootView.getActiveEditor().splitRight()
|
||||
expect(count).toBe 1
|
||||
expect(callbackEditor).toBe rootView.getActiveEditor()
|
||||
|
||||
describe ".eachBuffer(callback)", ->
|
||||
beforeEach ->
|
||||
rootView.attachToDom()
|
||||
|
||||
it "invokes the callback for existing buffer", ->
|
||||
count = 0
|
||||
callbackBuffer = null
|
||||
callback = (buffer) ->
|
||||
callbackBuffer = buffer
|
||||
count++
|
||||
rootView.eachBuffer(callback)
|
||||
expect(count).toBe 1
|
||||
expect(callbackBuffer).toBe rootView.getActiveEditor().getBuffer()
|
||||
|
||||
it "invokes the callback for new buffer", ->
|
||||
count = 0
|
||||
callbackBuffer = null
|
||||
callback = (buffer) ->
|
||||
callbackBuffer = buffer
|
||||
count++
|
||||
|
||||
rootView.eachBuffer(callback)
|
||||
count = 0
|
||||
callbackBuffer = null
|
||||
rootView.open(require.resolve('fixtures/sample.txt'))
|
||||
expect(count).toBe 1
|
||||
expect(callbackBuffer).toBe rootView.getActiveEditor().getBuffer()
|
||||
|
||||
@@ -239,3 +239,10 @@ class RootView extends View
|
||||
|
||||
@on 'editor-open', (e, editor) ->
|
||||
callback(editor)
|
||||
|
||||
eachBuffer: (callback) ->
|
||||
for buffer in @project.getBuffers()
|
||||
callback(buffer)
|
||||
|
||||
@project.on 'new-buffer', (buffer) ->
|
||||
callback(buffer)
|
||||
|
||||
@@ -2,13 +2,7 @@ module.exports =
|
||||
name: "strip trailing whitespace"
|
||||
|
||||
activate: (rootView) ->
|
||||
for buffer in rootView.project.getBuffers()
|
||||
@stripTrailingWhitespaceBeforeSave(buffer)
|
||||
|
||||
rootView.project.on 'new-buffer', (buffer) =>
|
||||
@stripTrailingWhitespaceBeforeSave(buffer)
|
||||
|
||||
stripTrailingWhitespaceBeforeSave: (buffer) ->
|
||||
buffer.on 'before-save', ->
|
||||
buffer.scan /[ \t]+$/g, (match, range, { replace }) ->
|
||||
replace('')
|
||||
rootView.eachBuffer (buffer) ->
|
||||
buffer.on 'before-save', ->
|
||||
buffer.scan /[ \t]+$/g, (match, range, { replace }) ->
|
||||
replace('')
|
||||
|
||||
Reference in New Issue
Block a user