Make immediate package loading work

This commit is contained in:
probablycorey
2014-02-07 15:50:48 -08:00
parent e51c94b940
commit 00f30eaf6c
2 changed files with 19 additions and 3 deletions

View File

@@ -60,19 +60,34 @@ class AtomPackage extends Package
@grammars = []
@scopedProperties = []
activate: ({immediate}={}) ->
activate: ->
return @activationDeferred.promise if @activationDeferred?
@activationDeferred = Q.defer()
@measure 'activateTime', =>
@activateResources()
if @metadata.activationEvents? and not immediate
if @metadata.activationEvents?
@subscribeToActivationEvents()
else
@activateNow()
@activationDeferred.promise
# Deprecated
activateSync: ({immediate}={}) ->
@activateResources()
if @metadata.activationEvents? and not immediate
@subscribeToActivationEvents()
else
try
@activateConfig()
@activateStylesheets()
if @requireMainModule()
@mainModule.activate(atom.packages.getPackageState(@name) ? {})
@mainActivated = true
catch e
console.warn "Failed to activate package named '#{@name}'", e.stack
activateNow: ->
try
@activateConfig()

View File

@@ -98,11 +98,12 @@ class PackageManager
@activePackages[pack.name] = pack
pack
# Deprecated
activatePackageSync: (name, options) ->
return pack if pack = @getActivePackage(name)
if pack = @loadPackage(name)
@activePackages[pack.name] = pack
pack.activate(options)
pack.activateSync(options)
pack
# Private: Deactivate all packages