Merge pull request #9514 from atom/ks-disabled-keymaps-for-uninstalled-packages

Guard against not loaded packages when updating disabled keymaps
This commit is contained in:
Kevin Sawicki
2015-11-10 15:06:42 -08:00
2 changed files with 11 additions and 2 deletions

View File

@@ -433,6 +433,13 @@ describe "PackageManager", ->
runs ->
expect(atom.keymaps.findKeyBindings(keystrokes: 'ctrl-z', target: element1)).toHaveLength 0
describe "when setting core.packagesWithKeymapsDisabled", ->
it "ignores package names in the array that aren't loaded", ->
atom.packages.observePackagesWithKeymapsDisabled()
expect(-> atom.config.set("core.packagesWithKeymapsDisabled", ["package-does-not-exist"])).not.toThrow()
expect(-> atom.config.set("core.packagesWithKeymapsDisabled", [])).not.toThrow()
describe "when the package's keymaps are disabled and re-enabled after it is activated", ->
it "removes and re-adds the keymaps", ->
element1 = createTestElement('test-1')

View File

@@ -336,8 +336,10 @@ class PackageManager
keymapsToEnable = _.difference(oldValue, newValue)
keymapsToDisable = _.difference(newValue, oldValue)
@getLoadedPackage(packageName).deactivateKeymaps() for packageName in keymapsToDisable when not @isPackageDisabled(packageName)
@getLoadedPackage(packageName).activateKeymaps() for packageName in keymapsToEnable when not @isPackageDisabled(packageName)
for packageName in keymapsToDisable when not @isPackageDisabled(packageName)
@getLoadedPackage(packageName)?.deactivateKeymaps()
for packageName in keymapsToEnable when not @isPackageDisabled(packageName)
@getLoadedPackage(packageName)?.activateKeymaps()
null
loadPackages: ->