ExtensionManager and Settings

This commit is contained in:
Chris Wanstrath
2011-11-09 19:16:27 -08:00
parent 10753c9b61
commit 36abc6ffc0
5 changed files with 43 additions and 36 deletions

View File

@@ -0,0 +1,30 @@
fs = require 'fs'
module.exports =
class ExtensionManager
extensions: {}
constructor: ->
atom.on 'window:load', @loadExtensions
loadExtensions: ->
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[extension.name] = new extension
catch error
console.warn "Loading Extension '#{fs.base extensionPath}' failed."
console.warn error
# After all the extensions are created, start them up.
for name, extension of @extensions
try
extension.startup()
catch error
console.warn "Extension #{extension::name} failed to startup."
console.warn error

View File

@@ -1,6 +1,3 @@
KeyBinder = require 'key-binder'
fs = require 'fs'
module.exports =
class Extension
pane: null

8
src/atom/settings.coffee Normal file
View File

@@ -0,0 +1,8 @@
fs = require 'fs'
module.exports =
class Settings
constructor: ->
atom.on 'window:load', ->
if fs.isFile "~/.atomicity/settings.coffee"
require "~/.atomicity/settings.coffee"

View File

@@ -11,8 +11,6 @@ windowAdditions =
browser: null
extensions: {}
appRoot: OSX.NSBundle.mainBundle.resourcePath
path: null
@@ -32,9 +30,6 @@ windowAdditions =
@editor = new Editor
@browser = new Browser
@loadExtensions()
@loadSettings()
$atomController.window.makeKeyWindow
atom.trigger 'window:load'
@@ -49,33 +44,6 @@ windowAdditions =
atom.storage.set "window.frame.#{@path}", {x:x, y:y, width:width, height:height}
loadExtensions: ->
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[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 name, extension of @extensions
try
extension.startup()
catch error
console.warn "window: Extension #{extension.constructor.name} failed to startup."
console.warn error
atom.trigger 'extensions:loaded'
loadSettings: ->
if fs.isFile "~/.atomicity/settings.coffee"
require "~/.atomicity/settings.coffee"
showConsole: ->
$atomController.webView.inspector.showConsole true

View File

@@ -3,8 +3,10 @@ window.atom = {}
App = require 'app'
Event = require 'event'
Native = require 'native'
ExtensionManager = require 'extension-manager'
KeyBinder = require 'key-binder'
Native = require 'native'
Settings = require 'settings'
Storage = require 'storage'
atom.native = new Native
@@ -16,6 +18,8 @@ for name, method of atom.event
atom[name] = atom.event[name]
atom.keybinder = new KeyBinder
atom.settings = new Settings
atom.extensions = new ExtensionManager
atom.app = new App
require 'window'