Handle linked packages and linked atoms

This commit is contained in:
Matt Colyer 2013-09-25 15:46:06 -07:00
parent 0f408a5626
commit c22d411e16
2 changed files with 13 additions and 5 deletions

View File

@ -364,6 +364,10 @@ describe "Keymap", ->
it "returns '<package-name>'", ->
expect(keymap.determineSource('~/.atom/packages/dummy/keymaps/a.cson')).toEqual 'dummy'
describe "for a linked package", ->
it "returns '<package-name>'", ->
expect(keymap.determineSource('/Users/john/github/dummy/keymaps/a.cson')).toEqual 'dummy'
describe "for a user defined keymap", ->
it "returns 'User'", ->
expect(keymap.determineSource('~/.atom/keymaps/a.cson')).toEqual 'User'
@ -371,3 +375,7 @@ describe "Keymap", ->
describe "for a core keymap", ->
it "returns 'Core'", ->
expect(keymap.determineSource('/Applications/Atom.app/.../node_modules/dummy/keymaps/a.cson')).toEqual 'Core'
describe "for a linked core keymap", ->
it "returns 'Core'", ->
expect(keymap.determineSource('/Users/john/github/atom/keymaps/a.cson')).toEqual 'Core'

View File

@ -82,13 +82,13 @@ class Keymap
return 'Unknown' unless filePath
pathParts = filePath.split(path.sep)
if _.contains(pathParts, '.atom') and _.contains(pathParts, 'packages')
packageNameIndex = pathParts.indexOf('keymaps') - 1
pathParts[packageNameIndex]
else if _.contains(pathParts, '.atom') and _.contains(pathParts, 'keymaps')
if _.contains(pathParts, 'node_modules') or _.contains(pathParts, 'atom') or _.contains(pathParts, 'src')
'Core'
else if _.contains(pathParts, '.atom') and _.contains(pathParts, 'keymaps') and !_.contains(pathParts, 'packages')
'User'
else
'Core'
packageNameIndex = pathParts.length - 3
pathParts[packageNameIndex]
bindKeys: (args...) ->
name = args.shift() if args.length > 2