Add atom.getPackages so we can access package objects anywhere

This commit is contained in:
Corey Johnson & Nathan Sobo
2013-01-07 14:25:56 -07:00
parent 361bf83345
commit 6efe533650
3 changed files with 22 additions and 18 deletions

View File

@@ -17,7 +17,7 @@ require.paths.unshift(require.resolve('fixtures/packages'))
[bindingSetsToRestore, bindingSetsByFirstKeystrokeToRestore] = []
# Load TextMate bundles, which specs rely on (but not other packages)
atom.loadPackages(atom.getAvailableTextMateBundles())
atom.loadTextMatePackages()
beforeEach ->
window.fixturesProject = new Project(require.resolve('fixtures'))

View File

@@ -12,7 +12,23 @@ _.extend atom,
pendingBrowserProcessCallbacks: {}
getAvailablePackages: ->
loadPackages: ->
pack.load() for pack in @getPackages()
getPackages: ->
@getPackageNames().map (name) -> Package.build(name)
loadTextMatePackages: ->
pack.load() for pack in @getTextMatePackages()
getTextMatePackages: ->
@getPackages().filter (pack) -> pack instanceof TextMatePackage
loadPackage: (name) ->
Package.build(name).load()
getPackageNames: ->
disabledPackages = config.get("core.disabledPackages") ? []
allPackageNames = []
for packageDirPath in config.packageDirPaths
packageNames = fs.list(packageDirPath)
@@ -20,17 +36,7 @@ _.extend atom,
.map((packagePath) -> fs.base(packagePath))
allPackageNames.push(packageNames...)
_.unique(allPackageNames)
getAvailableTextMateBundles: ->
@getAvailablePackages().filter (packageName) => TextMatePackage.testName(packageName)
loadPackages: (packageNames=@getAvailablePackages()) ->
disabledPackages = config.get("core.disabledPackages") ? []
for packageName in packageNames
@loadPackage(packageName) unless _.contains(disabledPackages, packageName)
loadPackage: (name) ->
Package.load(name)
.filter (name) -> not _.contains(disabledPackages, name)
loadThemes: ->
themeNames = config.get("core.themes") ? ['IR_Black']

View File

@@ -2,15 +2,13 @@ fs = require 'fs'
module.exports =
class Package
@load: (name) ->
@build: (name) ->
AtomPackage = require 'atom-package'
TextMatePackage = require 'text-mate-package'
if TextMatePackage.testName(name)
new TextMatePackage(name).load()
new TextMatePackage(name)
else
new AtomPackage(name).load()
new AtomPackage(name)
name: null
path: null