Merge pull request #3670 from atom/ns-register-opener-disposable

Return a Disposable from Workspace::registerOpener
This commit is contained in:
Nathan Sobo
2014-09-30 14:50:46 -06:00

View File

@@ -5,7 +5,8 @@ _ = require 'underscore-plus'
Q = require 'q'
Serializable = require 'serializable'
Delegator = require 'delegato'
{Emitter} = require 'event-kit'
{Emitter, Disposable} = require 'event-kit'
Grim = require 'grim'
TextEditor = require './text-editor'
PaneContainer = require './pane-container'
Pane = require './pane'
@@ -363,11 +364,16 @@ class Workspace extends Model
# ```
#
# * `opener` A {Function} to be called when a path is being opened.
#
# Returns a {Disposable} on which `.dispose()` can be called to remove the
# opener.
registerOpener: (opener) ->
@openers.push(opener)
new Disposable => _.remove(@openers, opener)
# Unregister an opener registered with {::registerOpener}.
unregisterOpener: (opener) ->
Grim.deprecate("Call .dispose() on the Disposable returned from ::registerOpener instead")
_.remove(@openers, opener)
getOpeners: ->