mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-20 07:28:08 +03:00
Replace ScopeProperties with private SettingsFile class in package.js
This commit is contained in:
parent
b2153a33dd
commit
231cc58e00
@ -7,7 +7,6 @@ const dedent = require('dedent')
|
|||||||
|
|
||||||
const CompileCache = require('./compile-cache')
|
const CompileCache = require('./compile-cache')
|
||||||
const ModuleCache = require('./module-cache')
|
const ModuleCache = require('./module-cache')
|
||||||
const ScopedProperties = require('./scoped-properties')
|
|
||||||
const BufferedProcess = require('./buffered-process')
|
const BufferedProcess = require('./buffered-process')
|
||||||
|
|
||||||
// Extended: Loads and activates a package's main module and resources such as
|
// Extended: Loads and activates a package's main module and resources such as
|
||||||
@ -103,7 +102,7 @@ class Package {
|
|||||||
this.activateKeymaps()
|
this.activateKeymaps()
|
||||||
this.activateMenus()
|
this.activateMenus()
|
||||||
for (let settings of this.settings) {
|
for (let settings of this.settings) {
|
||||||
settings.activate()
|
settings.activate(this.config)
|
||||||
}
|
}
|
||||||
this.settingsActivated = true
|
this.settingsActivated = true
|
||||||
}
|
}
|
||||||
@ -318,7 +317,7 @@ class Package {
|
|||||||
|
|
||||||
if (!this.settingsActivated) {
|
if (!this.settingsActivated) {
|
||||||
for (let settings of this.settings) {
|
for (let settings of this.settings) {
|
||||||
settings.activate()
|
settings.activate(this.config)
|
||||||
}
|
}
|
||||||
this.settingsActivated = true
|
this.settingsActivated = true
|
||||||
}
|
}
|
||||||
@ -636,14 +635,14 @@ class Package {
|
|||||||
this.settings = []
|
this.settings = []
|
||||||
|
|
||||||
const loadSettingsFile = (settingsPath, callback) => {
|
const loadSettingsFile = (settingsPath, callback) => {
|
||||||
return ScopedProperties.load(settingsPath, this.config, (error, settings) => {
|
return SettingsFile.load(settingsPath, (error, settingsFile) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
const detail = `${error.message} in ${settingsPath}`
|
const detail = `${error.message} in ${settingsPath}`
|
||||||
const stack = `${error.stack}\n at ${settingsPath}:1:1`
|
const stack = `${error.stack}\n at ${settingsPath}:1:1`
|
||||||
this.notificationManager.addFatalError(`Failed to load the ${this.name} package settings`, {stack, detail, packageName: this.name, dismissable: true})
|
this.notificationManager.addFatalError(`Failed to load the ${this.name} package settings`, {stack, detail, packageName: this.name, dismissable: true})
|
||||||
} else {
|
} else {
|
||||||
this.settings.push(settings)
|
this.settings.push(settingsFile)
|
||||||
if (this.settingsActivated) { settings.activate() }
|
if (this.settingsActivated) settingsFile.activate(this.config)
|
||||||
}
|
}
|
||||||
return callback()
|
return callback()
|
||||||
})
|
})
|
||||||
@ -652,10 +651,10 @@ class Package {
|
|||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
if (this.preloadedPackage && this.packageManager.packagesCache[this.name]) {
|
if (this.preloadedPackage && this.packageManager.packagesCache[this.name]) {
|
||||||
for (let settingsPath in this.packageManager.packagesCache[this.name].settings) {
|
for (let settingsPath in this.packageManager.packagesCache[this.name].settings) {
|
||||||
const scopedProperties = this.packageManager.packagesCache[this.name].settings[settingsPath]
|
const properties = this.packageManager.packagesCache[this.name].settings[settingsPath]
|
||||||
const settings = new ScopedProperties(`core:${settingsPath}`, scopedProperties || {}, this.config)
|
const settingsFile = new SettingsFile(`core:${settingsPath}`, properties || {})
|
||||||
this.settings.push(settings)
|
this.settings.push(settingsFile)
|
||||||
if (this.settingsActivated) { settings.activate() }
|
if (this.settingsActivated) settingsFile.activate(this.config)
|
||||||
}
|
}
|
||||||
return resolve()
|
return resolve()
|
||||||
} else {
|
} else {
|
||||||
@ -727,7 +726,7 @@ class Package {
|
|||||||
grammar.deactivate()
|
grammar.deactivate()
|
||||||
}
|
}
|
||||||
for (let settings of this.settings) {
|
for (let settings of this.settings) {
|
||||||
settings.deactivate()
|
settings.deactivate(this.config)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.stylesheetDisposables) this.stylesheetDisposables.dispose()
|
if (this.stylesheetDisposables) this.stylesheetDisposables.dispose()
|
||||||
@ -1105,3 +1104,32 @@ class Package {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class SettingsFile {
|
||||||
|
static load (path, callback) {
|
||||||
|
CSON.readFile(path, (error, properties = {}) => {
|
||||||
|
if (error) {
|
||||||
|
callback(error)
|
||||||
|
} else {
|
||||||
|
callback(null, new SettingsFile(path, properties))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor (path, properties) {
|
||||||
|
this.path = path
|
||||||
|
this.properties = properties
|
||||||
|
}
|
||||||
|
|
||||||
|
activate (config) {
|
||||||
|
for (let selector in this.properties) {
|
||||||
|
config.set(null, this.properties[selector], {scopeSelector: selector, source: this.path})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
deactivate (config) {
|
||||||
|
for (let selector in this.properties) {
|
||||||
|
config.unset(null, {scopeSelector: selector, source: this.path})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
CSON = require 'season'
|
|
||||||
|
|
||||||
module.exports =
|
|
||||||
class ScopedProperties
|
|
||||||
@load: (scopedPropertiesPath, config, callback) ->
|
|
||||||
CSON.readFile scopedPropertiesPath, (error, scopedProperties={}) ->
|
|
||||||
if error?
|
|
||||||
callback(error)
|
|
||||||
else
|
|
||||||
callback(null, new ScopedProperties(scopedPropertiesPath, scopedProperties, config))
|
|
||||||
|
|
||||||
constructor: (@path, @scopedProperties, @config) ->
|
|
||||||
|
|
||||||
activate: ->
|
|
||||||
for selector, properties of @scopedProperties
|
|
||||||
@config.set(null, properties, scopeSelector: selector, source: @path)
|
|
||||||
return
|
|
||||||
|
|
||||||
deactivate: ->
|
|
||||||
for selector of @scopedProperties
|
|
||||||
@config.unset(null, scopeSelector: selector, source: @path)
|
|
||||||
return
|
|
Loading…
Reference in New Issue
Block a user