Activate atom.directory-provider services before deserialization

Signed-off-by: Nathan Sobo <nathan@github.com>
This commit is contained in:
Max Brunsfeld
2016-09-14 13:26:03 -07:00
committed by Nathan Sobo
parent 7929e261a0
commit 3aaa738944
4 changed files with 37 additions and 0 deletions

View File

@@ -85,6 +85,7 @@ class Package
@loadMenus()
@loadStylesheets()
@registerDeserializerMethods()
@activateCoreStartupServices()
@configSchemaRegisteredOnLoad = @registerConfigSchemaFromMetadata()
@settingsPromise = @loadSettings()
if @shouldRequireMainModuleOnLoad() and not @mainModule?
@@ -290,6 +291,17 @@ class Package
@mainModule[methodName](state, atomEnvironment)
return
activateCoreStartupServices: ->
if directoryProviderService = @metadata.providedServices?['atom.directory-provider']
@requireMainModule()
servicesByVersion = {}
for version, methodName of directoryProviderService.versions
if typeof @mainModule[methodName] is 'function'
servicesByVersion[version] = @mainModule[methodName]()
disposable = @packageManager.serviceHub.provide('atom.directory-provider', servicesByVersion)
@activationDisposables.add(disposable)
registerViewProviders: ->
if @metadata.viewProviders? and not @registeredViewProviders
@requireMainModule()