window.extensions is a map of loaded extension instances

This commit is contained in:
Chris Wanstrath
2011-11-06 19:30:02 -08:00
parent 25c1f0640c
commit 39f11f78a2

View File

@@ -12,7 +12,7 @@ fs = require 'fs'
windowAdditions =
editor: null
extensions: []
extensions: {}
appRoot: OSX.NSBundle.mainBundle.resourcePath
@@ -37,20 +37,20 @@ windowAdditions =
"window:" + @path
loadExtensions: ->
extension.shutdown() for extension in @extensions
@extensions = []
extension.shutdown() for name, extension of @extensions
@extensions = {}
extensionPaths = fs.list require.resourcePath + "/extensions"
for extensionPath in extensionPaths when fs.isDirectory extensionPath
try
extension = require extensionPath
extensions.push new extension()
@extensions[extension.name] = new extension
catch error
console.warn "window: Loading Extension '#{fs.base extensionPath}' failed."
console.warn error
# After all the extensions are created, start them up.
for extension in @extensions
for name, extension of @extensions
try
extension.startup()
catch error
@@ -84,7 +84,7 @@ windowAdditions =
Event.trigger 'window:open', path
close: (path) ->
extension.shutdown() for extension in @extensions
extension.shutdown() for name, extension of @extensions
atomController.close
Event.trigger 'window:close', path