mirror of
https://github.com/atom/atom.git
synced 2026-04-06 03:02:13 -04:00
Add Atom.getAvailablePackageMetadata()
This includes the metadata for all available packages whether or not they are currently loaded.
This commit is contained in:
@@ -115,6 +115,14 @@ _.extend atom,
|
||||
getAvailablePackageNames: ->
|
||||
fsUtils.base(path) for path in @getAvailablePackagePaths()
|
||||
|
||||
getAvailablePackageMetadata: ->
|
||||
packages = []
|
||||
for packagePath in atom.getAvailablePackagePaths()
|
||||
name = fsUtils.base(packagePath)
|
||||
metadata = atom.getLoadedPackage(name)?.metadata ? Package.loadMetadata(path, true)
|
||||
packages.push(metadata)
|
||||
packages
|
||||
|
||||
loadThemes: ->
|
||||
themeNames = config.get("core.themes")
|
||||
themeNames = [themeNames] unless _.isArray(themeNames)
|
||||
|
||||
@@ -12,12 +12,5 @@ class InstalledPackagesConfigPanel extends ConfigPanel
|
||||
@div class: 'installed-packages'
|
||||
|
||||
initialize: ->
|
||||
for packagePath in atom.getAvailablePackagePaths().sort()
|
||||
name = path.basename(packagePath)
|
||||
metadata = atom.getLoadedPackage(name)?.metadata
|
||||
unless metadata
|
||||
try
|
||||
metadata = Package.loadMetadata()
|
||||
catch e
|
||||
metadata = {name}
|
||||
for metadata in _.sortBy(atom.getAvailablePackageMetadata(), 'name')
|
||||
@append(new PackageConfigView(metadata))
|
||||
|
||||
@@ -102,7 +102,7 @@ class PackageConfigView extends View
|
||||
|
||||
@updateDefaultAction()
|
||||
|
||||
@enableToggle.find('a').on 'click', => @togglePackageEnablement
|
||||
@enableToggle.find('a').on 'click', => @togglePackageEnablement()
|
||||
|
||||
@observeConfig 'core.disabledPackages', =>
|
||||
@updatePackageState()
|
||||
|
||||
@@ -18,9 +18,12 @@ class Package
|
||||
pack.load(options)
|
||||
pack
|
||||
|
||||
@loadMetadata: (path) ->
|
||||
@loadMetadata: (path, ignoreErrors=false) ->
|
||||
if metadataPath = CSON.resolve(join(path, 'package'))
|
||||
metadata = CSON.readFileSync(metadataPath)
|
||||
try
|
||||
metadata = CSON.readFileSync(metadataPath)
|
||||
catch e
|
||||
throw e unless ignoreErrors
|
||||
metadata ?= {}
|
||||
metadata.name = basename(path)
|
||||
metadata
|
||||
|
||||
Reference in New Issue
Block a user