Support CSON config file

Use ~/.atom/config.cson as the new default when no
config file exists.

~/.atom/config.json is still the default if they both
exist.
This commit is contained in:
Kevin Sawicki
2013-02-04 12:38:00 -08:00
parent cd07ec841d
commit bd88a0de15
3 changed files with 41 additions and 13 deletions

View File

@@ -3,7 +3,6 @@ _ = require 'underscore'
EventEmitter = require 'event-emitter'
configDirPath = fs.absolute("~/.atom")
configJsonPath = fs.join(configDirPath, "config.json")
userInitScriptPath = fs.join(configDirPath, "user.coffee")
bundledPackagesDirPath = fs.join(resourcePath, "src/packages")
bundledThemesDirPath = fs.join(resourcePath, "themes")
@@ -27,6 +26,8 @@ class Config
core: _.clone(require('root-view').configDefaults)
editor: _.clone(require('editor').configDefaults)
@settings = {}
@configFilePath = fs.resolveExtension(fs.join(configDirPath, 'config'), ['json', 'cson'])
@configFilePath ?= fs.join(configDirPath, 'config.cson')
load: ->
@loadUserConfig()
@@ -35,8 +36,8 @@ class Config
atom.loadPackages()
loadUserConfig: ->
if fs.exists(configJsonPath)
userConfig = JSON.parse(fs.read(configJsonPath))
if fs.exists(@configFilePath)
userConfig = fs.readObject(@configFilePath)
_.extend(@settings, userConfig)
get: (keyPath) ->
@@ -77,7 +78,7 @@ class Config
@trigger 'updated'
save: ->
fs.write(configJsonPath, JSON.stringify(@settings, undefined, 2) + "\n")
fs.writeObject(@configFilePath, @settings)
requireUserInitScript: ->
try