mirror of
https://github.com/atom/atom.git
synced 2026-04-06 03:02:13 -04:00
Preload settings
This commit is contained in:
@@ -48,7 +48,7 @@ function buildBundledPackagesMetadata () {
|
||||
}
|
||||
}
|
||||
|
||||
const packageNewMetadata = {metadata: packageMetadata, keymaps: {}, menus: {}, grammarPaths: []}
|
||||
const packageNewMetadata = {metadata: packageMetadata, keymaps: {}, menus: {}, grammarPaths: [], settings: {}}
|
||||
|
||||
packageNewMetadata.rootDirPath = path.relative(CONFIG.intermediateAppPath, packagePath)
|
||||
|
||||
@@ -85,6 +85,12 @@ function buildBundledPackagesMetadata () {
|
||||
packageNewMetadata.grammarPaths.push(relativePath)
|
||||
}
|
||||
|
||||
const packageSettingsPath = path.join(packagePath, 'settings')
|
||||
for (let packageSettingPath of fs.listSync(packageSettingsPath, ['json', 'cson'])) {
|
||||
const relativePath = path.relative(CONFIG.intermediateAppPath, packageSettingPath)
|
||||
packageNewMetadata.settings[relativePath] = CSON.readFileSync(packageSettingPath)
|
||||
}
|
||||
|
||||
const packageStyleSheetsPath = path.join(packagePath, 'styles')
|
||||
let styleSheets = null
|
||||
if (packageMetadata.mainStyleSheet) {
|
||||
|
||||
@@ -89,11 +89,11 @@ class Package
|
||||
@registerTranspilerConfig()
|
||||
@configSchemaRegisteredOnLoad = @registerConfigSchemaFromMetadata()
|
||||
@requireMainModule()
|
||||
@settingsPromise = @loadSettings()
|
||||
|
||||
finishLoading: ->
|
||||
@measure 'loadTime', =>
|
||||
@loadStylesheets()
|
||||
@settingsPromise = @loadSettings()
|
||||
|
||||
load: ->
|
||||
@measure 'loadTime', =>
|
||||
@@ -468,15 +468,18 @@ class Package
|
||||
|
||||
new Promise (resolve) =>
|
||||
if @bundledPackage and not @packageManager.devMode
|
||||
settingsDirPath = path.resolve(@packageManager.resourcePath, @path, 'settings')
|
||||
for settingsPath, scopedProperties of @packageManager.packagesCache[@name].settings
|
||||
settings = new ScopedProperties("core/#{settingsPath}", scopedProperties ? {}, @config)
|
||||
@settings.push(settings)
|
||||
settings.activate() if @settingsActivated
|
||||
resolve()
|
||||
else
|
||||
settingsDirPath = path.join(@path, 'settings')
|
||||
fs.exists settingsDirPath, (settingsDirExists) ->
|
||||
return resolve() unless settingsDirExists
|
||||
|
||||
fs.exists settingsDirPath, (settingsDirExists) ->
|
||||
return resolve() unless settingsDirExists
|
||||
|
||||
fs.list settingsDirPath, ['json', 'cson'], (error, settingsPaths=[]) ->
|
||||
async.each settingsPaths, loadSettingsFile, -> resolve()
|
||||
fs.list settingsDirPath, ['json', 'cson'], (error, settingsPaths=[]) ->
|
||||
async.each settingsPaths, loadSettingsFile, -> resolve()
|
||||
|
||||
serialize: ->
|
||||
if @mainActivated
|
||||
|
||||
Reference in New Issue
Block a user