diff --git a/build/Gruntfile.coffee b/build/Gruntfile.coffee index d352f9388..61ef5f380 100644 --- a/build/Gruntfile.coffee +++ b/build/Gruntfile.coffee @@ -146,7 +146,7 @@ module.exports = (grunt) -> csonConfig = options: - rootObject: true + rootObject: false cachePath: path.join(home, '.nylas', 'compile-cache', 'grunt-cson') glob_to_multiple: @@ -154,6 +154,7 @@ module.exports = (grunt) -> src: [ 'menus/*.cson' 'keymaps/*.cson' + 'keymaps/templates/*.cson' 'static/**/*.cson' ] dest: appDir diff --git a/internal_packages/preferences/lib/tabs/preferences-keymaps.cjsx b/internal_packages/preferences/lib/tabs/preferences-keymaps.cjsx index a0db6c508..9c702ae8e 100644 --- a/internal_packages/preferences/lib/tabs/preferences-keymaps.cjsx +++ b/internal_packages/preferences/lib/tabs/preferences-keymaps.cjsx @@ -36,7 +36,9 @@ class PreferencesKeymaps extends React.Component fs.readdir templatesDir, (err, files) => return unless files and files instanceof Array templates = files.filter (filename) => - path.extname(filename) is '.cson' + path.extname(filename) is '.cson' or path.extname(filename) is '.json' + templates = templates.map (filename) => + path.parse(filename).name @setState(templates: templates) _getStateFromKeymaps: => @@ -55,7 +57,7 @@ class PreferencesKeymaps extends React.Component value={@props.config.get('core.keymapTemplate')} onChange={ (event) => @props.config.set('core.keymapTemplate', event.target.value) }> { @state.templates.map (template) => - + } diff --git a/keymaps/base.darwin.cson b/keymaps/base-darwin.cson similarity index 100% rename from keymaps/base.darwin.cson rename to keymaps/base-darwin.cson diff --git a/keymaps/base.linux.cson b/keymaps/base-linux.cson similarity index 100% rename from keymaps/base.linux.cson rename to keymaps/base-linux.cson diff --git a/keymaps/base.win32.cson b/keymaps/base-win32.cson similarity index 100% rename from keymaps/base.win32.cson rename to keymaps/base-win32.cson diff --git a/src/config-schema.coffee b/src/config-schema.coffee index 553aba2a4..9db26d4b6 100644 --- a/src/config-schema.coffee +++ b/src/config-schema.coffee @@ -22,7 +22,7 @@ module.exports = type: 'string' keymapTemplate: type: 'string' - default: 'Gmail.cson' + default: 'Gmail' attachments: type: 'object' properties: diff --git a/src/keymap-extensions.coffee b/src/keymap-extensions.coffee index 3dffc79cf..3995c2422 100644 --- a/src/keymap-extensions.coffee +++ b/src/keymap-extensions.coffee @@ -10,8 +10,8 @@ KeymapManager::onDidLoadBundledKeymaps = (callback) -> KeymapManager::loadBundledKeymaps = -> # Load the base keymap and the base.platform keymap - baseKeymap = path.join(@resourcePath, 'keymaps', 'base.cson') - basePlatformKeymap = path.join(@resourcePath, 'keymaps', "base.#{process.platform}.cson") + baseKeymap = fs.resolve(path.join(@resourcePath, 'keymaps'), 'base', ['cson', 'json']) + basePlatformKeymap = fs.resolve(path.join(@resourcePath, 'keymaps'), "base-#{process.platform}", ['cson', 'json']) @loadKeymap(baseKeymap) @loadKeymap(basePlatformKeymap) @@ -22,9 +22,12 @@ KeymapManager::loadBundledKeymaps = -> @removeBindingsFromSource(templateKeymapPath) if templateKeymapPath templateFile = atom.config.get(templateConfigKey) if templateFile - templateKeymapPath = path.join(@resourcePath, 'keymaps', 'templates', templateFile) - @loadKeymap(templateKeymapPath) - @emitter.emit('did-reload-keymap', {path: templateKeymapPath}) + templateKeymapPath = fs.resolve(path.join(@resourcePath, 'keymaps', 'templates'), templateFile, ['cson', 'json']) + if fs.existsSync(templateKeymapPath) + @loadKeymap(templateKeymapPath) + @emitter.emit('did-reload-keymap', {path: templateKeymapPath}) + else + console.warn("Could not find #{templateKeymapPath}") atom.config.observe(templateConfigKey, reloadTemplateKeymap) reloadTemplateKeymap()