From e84e13fe3712b19355409d7b424c75b8a7836e7f Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Fri, 24 May 2013 10:21:00 -0700 Subject: [PATCH] Load internal modules with an atom engines field as packages --- src/app/atom.coffee | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/app/atom.coffee b/src/app/atom.coffee index ff64f51da..b44bc4c95 100644 --- a/src/app/atom.coffee +++ b/src/app/atom.coffee @@ -91,7 +91,15 @@ _.extend atom, resolvePackagePath: (name) -> return name if fsUtils.isDirectory(name) path = fsUtils.resolve(config.packageDirPaths..., name) - path if fsUtils.isDirectory(path) + if fsUtils.isDirectory(path) + path + else + packagePath = fsUtils.join(window.resourcePath, 'node_modules', name) + packagePath if @isInternalPackage(packagePath) + + isInternalPackage: (packagePath) -> + {engines} = Package.loadMetadata(packagePath, true) + return packagePath if engines?.atom? getLoadedPackage: (name) -> @loadedPackages[name] @@ -107,9 +115,14 @@ _.extend atom, getAvailablePackagePaths: -> packagePaths = [] + for packageDirPath in config.packageDirPaths for packagePath in fsUtils.list(packageDirPath) packagePaths.push(packagePath) if fsUtils.isDirectory(packagePath) + + for packagePath in fsUtils.list(fsUtils.join(window.resourcePath, 'node_modules')) + packagePaths.push(packagePath) if @isInternalPackage(packagePath) + _.uniq(packagePaths) getAvailablePackageNames: ->