diff --git a/spec/keymap-extensions-spec.coffee b/spec/keymap-extensions-spec.coffee new file mode 100644 index 000000000..784764036 --- /dev/null +++ b/spec/keymap-extensions-spec.coffee @@ -0,0 +1,23 @@ +path = require 'path' +temp = require('temp').track() +CSON = require 'season' +fs = require 'fs-plus' + +describe "keymap-extensions", -> + + beforeEach -> + atom.keymaps.configDirPath = temp.path('atom-spec-keymap-ext') + fs.writeFileSync(atom.keymaps.getUserKeymapPath(), '#') + @userKeymapLoaded = -> + atom.keymaps.onDidLoadUserKeymap => @userKeymapLoaded() + + afterEach -> + fs.removeSync(atom.keymaps.configDirPath) + atom.keymaps.destroy() + + describe "did-load-user-keymap", -> + + it "fires when user keymap is loaded", -> + spyOn(this, 'userKeymapLoaded') + atom.keymaps.loadUserKeymap() + expect(@userKeymapLoaded).toHaveBeenCalled() diff --git a/src/keymap-extensions.coffee b/src/keymap-extensions.coffee index b5c3964f9..bf8302f4c 100644 --- a/src/keymap-extensions.coffee +++ b/src/keymap-extensions.coffee @@ -8,6 +8,9 @@ bundledKeymaps = require('../package.json')?._atomKeymaps KeymapManager::onDidLoadBundledKeymaps = (callback) -> @emitter.on 'did-load-bundled-keymaps', callback +KeymapManager::onDidLoadUserKeymap = (callback) -> + @emitter.on 'did-load-user-keymap', callback + KeymapManager::loadBundledKeymaps = -> keymapsPath = path.join(@resourcePath, 'keymaps') if bundledKeymaps? @@ -49,6 +52,9 @@ KeymapManager::loadUserKeymap = -> stack = error.stack @notificationManager.addFatalError(error.message, {detail, stack, dismissable: true}) + @emitter.emit 'did-load-user-keymap' + + KeymapManager::subscribeToFileReadFailure = -> @onDidFailToReadFile (error) => userKeymapPath = @getUserKeymapPath()