mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-20 15:37:46 +03:00
Merge pull request #14645 from atom/jr-fix-observe-text-editor-methods
Fix observeTextEditors method in WorkspaceCenter
This commit is contained in:
commit
5c37f5a8db
31
spec/workspace-center-spec.js
Normal file
31
spec/workspace-center-spec.js
Normal file
@ -0,0 +1,31 @@
|
||||
/** @babel */
|
||||
|
||||
const TextEditor = require('../src/text-editor')
|
||||
|
||||
import {it, fit, ffit, fffit, beforeEach, afterEach} from './async-spec-helpers'
|
||||
|
||||
describe('WorkspaceCenter', () => {
|
||||
describe('.observeTextEditors()', () => {
|
||||
it('invokes the observer with current and future text editors', () => {
|
||||
const workspaceCenter = atom.workspace.getCenter()
|
||||
const pane = workspaceCenter.getActivePane()
|
||||
const observed = []
|
||||
|
||||
const editorAddedBeforeRegisteringObserver = new TextEditor()
|
||||
const nonEditorItemAddedBeforeRegisteringObserver = document.createElement('div')
|
||||
pane.activateItem(editorAddedBeforeRegisteringObserver)
|
||||
pane.activateItem(nonEditorItemAddedBeforeRegisteringObserver)
|
||||
|
||||
workspaceCenter.observeTextEditors(editor => observed.push(editor))
|
||||
|
||||
const editorAddedAfterRegisteringObserver = new TextEditor()
|
||||
const nonEditorItemAddedAfterRegisteringObserver = document.createElement('div')
|
||||
pane.activateItem(editorAddedAfterRegisteringObserver)
|
||||
pane.activateItem(nonEditorItemAddedAfterRegisteringObserver)
|
||||
|
||||
expect(observed).toEqual(
|
||||
[editorAddedBeforeRegisteringObserver, editorAddedAfterRegisteringObserver]
|
||||
)
|
||||
})
|
||||
})
|
||||
})
|
@ -226,6 +226,25 @@ module.exports = class WorkspaceCenter {
|
||||
return this.paneContainer.onDidDestroyPaneItem(callback)
|
||||
}
|
||||
|
||||
// Extended: Invoke the given callback when a text editor is added to the
|
||||
// workspace center.
|
||||
//
|
||||
// * `callback` {Function} to be called when panes are added.
|
||||
// * `event` {Object} with the following keys:
|
||||
// * `textEditor` {TextEditor} that was added.
|
||||
// * `pane` {Pane} containing the added text editor.
|
||||
// * `index` {Number} indicating the index of the added text editor in its
|
||||
// pane.
|
||||
//
|
||||
// Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
|
||||
onDidAddTextEditor (callback) {
|
||||
return this.onDidAddPaneItem(({item, pane, index}) => {
|
||||
if (item instanceof TextEditor) {
|
||||
callback({textEditor: item, pane, index})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/*
|
||||
Section: Pane Items
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user