Merge pull request #1130 from atom/meta-to-command

Use `cmd` instead of `meta`
This commit is contained in:
Matt Colyer
2013-11-21 12:41:31 -08:00
7 changed files with 195 additions and 138 deletions

View File

@@ -10,52 +10,20 @@
'shift-end': 'editor:select-to-end-of-line'
# Sublime Parity
'meta-a': 'core:select-all'
'meta-alt-p': 'editor:log-cursor-scope'
'ctrl-t': 'editor:transpose'
'meta-k meta-u': 'editor:upper-case'
'meta-k meta-l': 'editor:lower-case'
'.editor:not(.mini)':
# Atom Specific
'alt-meta-z': 'editor:checkout-head-revision'
'meta-<': 'editor:scroll-to-cursor'
'ctrl-C': 'editor:copy-path'
'alt-meta-ctrl-f': 'editor:fold-selection'
'meta-=': 'editor:auto-indent'
# Sublime Parity
'tab': 'editor:indent'
'enter': 'editor:newline'
'meta-enter': 'editor:newline-below'
'meta-shift-enter': 'editor:newline-above'
'meta-]': 'editor:indent-selected-rows'
'meta-[': 'editor:outdent-selected-rows'
'shift-tab': 'editor:outdent-selected-rows'
'ctrl-meta-up': 'editor:move-line-up'
'ctrl-meta-down': 'editor:move-line-down'
'meta-/': 'editor:toggle-line-comments'
'meta-j': 'editor:join-line'
'meta-D': 'editor:duplicate-line'
'ctrl-K': 'editor:delete-line'
'ctrl-shift-up': 'editor:add-selection-above'
'ctrl-shift-down': 'editor:add-selection-below'
'meta-alt-[': 'editor:fold-current-row'
'meta-alt-]': 'editor:unfold-current-row'
'meta-alt-{': 'editor:fold-all' # Atom Specific
'meta-alt-}': 'editor:unfold-all' # Atom Specific
'meta-k meta-0': 'editor:unfold-all'
'meta-k meta-1': 'editor:fold-at-indent-level-1'
'meta-k meta-2': 'editor:fold-at-indent-level-2'
'meta-k meta-3': 'editor:fold-at-indent-level-3'
'meta-k meta-4': 'editor:fold-at-indent-level-4'
'meta-k meta-5': 'editor:fold-at-indent-level-5'
'meta-k meta-6': 'editor:fold-at-indent-level-6'
'meta-k meta-7': 'editor:fold-at-indent-level-7'
'meta-k meta-8': 'editor:fold-at-indent-level-8'
'meta-k meta-9': 'editor:fold-at-indent-level-9'
'.tool-panel':
'escape': 'core:close'
@@ -76,11 +44,6 @@
'backspace': 'native!'
'shift-backspace': 'native!'
'delete': 'native!'
'meta-z': 'native!'
'meta-Z': 'native!'
'meta-x': 'native!'
'meta-c': 'native!'
'meta-v': 'native!'
'ctrl-b': 'native!'
'ctrl-f': 'native!'
'ctrl-F': 'native!'

View File

@@ -1,10 +1,10 @@
'.platform-darwin':
# Apple specific
'meta-q': 'application:quit'
'meta-h': 'application:hide'
'meta-H': 'application:hide-other-applications'
'meta-m': 'application:minimize'
'alt-meta-ctrl-m': 'application:zoom'
'cmd-q': 'application:quit'
'cmd-h': 'application:hide'
'cmd-H': 'application:hide-other-applications'
'cmd-m': 'application:minimize'
'alt-cmd-ctrl-m': 'application:zoom'
'ctrl-p': 'core:move-up'
'ctrl-n': 'core:move-down'
@@ -18,36 +18,36 @@
'ctrl-d': 'core:delete'
# Atom Specific
'meta-O': 'application:open-dev'
'meta-alt-ctrl-s': 'application:run-all-specs'
'cmd-O': 'application:open-dev'
'cmd-alt-ctrl-s': 'application:run-all-specs'
'enter': 'core:confirm'
'escape': 'core:cancel'
'up': 'core:move-up'
'down': 'core:move-down'
'left': 'core:move-left'
'right': 'core:move-right'
'ctrl-alt-meta-r': 'window:reload'
'alt-meta-i': 'window:toggle-dev-tools'
'meta-alt-ctrl-p': 'window:run-package-specs'
'ctrl-alt-cmd-r': 'window:reload'
'alt-cmd-i': 'window:toggle-dev-tools'
'cmd-alt-ctrl-p': 'window:run-package-specs'
# Sublime Parity
'meta-,': 'application:show-settings'
'meta-N': 'application:new-window'
'meta-W': 'window:close'
'meta-o': 'application:open'
'meta-T': 'pane:reopen-closed-item'
'meta-n': 'application:new-file'
'meta-s': 'core:save'
'meta-S': 'core:save-as'
'meta-alt-s': 'window:save-all'
'meta-w': 'core:close'
'meta-ctrl-f': 'window:toggle-full-screen'
'meta-z': 'core:undo'
'meta-Z': 'core:redo'
'meta-y': 'core:redo'
'meta-x': 'core:cut'
'meta-c': 'core:copy'
'meta-v': 'core:paste'
'cmd-,': 'application:show-settings'
'cmd-N': 'application:new-window'
'cmd-W': 'window:close'
'cmd-o': 'application:open'
'cmd-T': 'pane:reopen-closed-item'
'cmd-n': 'application:new-file'
'cmd-s': 'core:save'
'cmd-S': 'core:save-as'
'cmd-alt-s': 'window:save-all'
'cmd-w': 'core:close'
'cmd-ctrl-f': 'window:toggle-full-screen'
'cmd-z': 'core:undo'
'cmd-Z': 'core:redo'
'cmd-y': 'core:redo'
'cmd-x': 'core:cut'
'cmd-c': 'core:copy'
'cmd-v': 'core:paste'
'shift-up': 'core:select-up'
'shift-down': 'core:select-down'
'shift-left': 'core:select-left'
@@ -57,46 +57,46 @@
'pagedown': 'core:page-down'
'backspace': 'core:backspace'
'shift-backspace': 'core:backspace'
'meta-up': 'core:move-to-top'
'meta-down': 'core:move-to-bottom'
'meta-shift-up': 'core:select-to-top'
'meta-shift-down': 'core:select-to-bottom'
'meta-{': 'pane:show-previous-item'
'meta-}': 'pane:show-next-item'
'meta-alt-left': 'pane:show-previous-item'
'meta-alt-right': 'pane:show-next-item'
'meta-=': 'window:increase-font-size'
'meta-+': 'window:increase-font-size'
'meta--': 'window:decrease-font-size'
'cmd-up': 'core:move-to-top'
'cmd-down': 'core:move-to-bottom'
'cmd-shift-up': 'core:select-to-top'
'cmd-shift-down': 'core:select-to-bottom'
'cmd-{': 'pane:show-previous-item'
'cmd-}': 'pane:show-next-item'
'cmd-alt-left': 'pane:show-previous-item'
'cmd-alt-right': 'pane:show-next-item'
'cmd-=': 'window:increase-font-size'
'cmd-+': 'window:increase-font-size'
'cmd--': 'window:decrease-font-size'
'meta-k up': 'pane:split-up' # Atom Specific
'meta-k down': 'pane:split-down' # Atom Specific
'meta-k left': 'pane:split-left' # Atom Specific
'meta-k right': 'pane:split-right' # Atom Specific
'meta-k meta-w': 'pane:close' # Atom Specific
'meta-k alt-meta-w': 'pane:close-other-items' # Atom Specific
'meta-k meta-left': 'window:focus-previous-pane'
'meta-k meta-right': 'window:focus-next-pane'
'meta-1': 'pane:show-item-1'
'meta-2': 'pane:show-item-2'
'meta-3': 'pane:show-item-3'
'meta-4': 'pane:show-item-4'
'meta-5': 'pane:show-item-5'
'meta-6': 'pane:show-item-6'
'meta-7': 'pane:show-item-7'
'meta-8': 'pane:show-item-8'
'meta-9': 'pane:show-item-9'
'cmd-k up': 'pane:split-up' # Atom Specific
'cmd-k down': 'pane:split-down' # Atom Specific
'cmd-k left': 'pane:split-left' # Atom Specific
'cmd-k right': 'pane:split-right' # Atom Specific
'cmd-k cmd-w': 'pane:close' # Atom Specific
'cmd-k alt-cmd-w': 'pane:close-other-items' # Atom Specific
'cmd-k cmd-left': 'window:focus-previous-pane'
'cmd-k cmd-right': 'window:focus-next-pane'
'cmd-1': 'pane:show-item-1'
'cmd-2': 'pane:show-item-2'
'cmd-3': 'pane:show-item-3'
'cmd-4': 'pane:show-item-4'
'cmd-5': 'pane:show-item-5'
'cmd-6': 'pane:show-item-6'
'cmd-7': 'pane:show-item-7'
'cmd-8': 'pane:show-item-8'
'cmd-9': 'pane:show-item-9'
'.platform-darwin .editor':
# Apple Specific
'meta-backspace': 'editor:backspace-to-beginning-of-line'
'meta-delete': 'editor:backspace-to-beginning-of-line'
'cmd-backspace': 'editor:backspace-to-beginning-of-line'
'cmd-delete': 'editor:backspace-to-beginning-of-line'
'ctrl-A': 'editor:select-to-first-character-of-line'
'ctrl-E': 'editor:select-to-end-of-line'
'meta-left': 'editor:move-to-first-character-of-line'
'meta-right': 'editor:move-to-end-of-line'
'meta-shift-left': 'editor:select-to-first-character-of-line'
'meta-shift-right': 'editor:select-to-end-of-line'
'cmd-left': 'editor:move-to-first-character-of-line'
'cmd-right': 'editor:move-to-end-of-line'
'cmd-shift-left': 'editor:select-to-first-character-of-line'
'cmd-shift-right': 'editor:select-to-end-of-line'
'alt-backspace': 'editor:backspace-to-beginning-of-word'
'alt-delete': 'editor:delete-to-end-of-word'
'ctrl-a': 'editor:move-to-first-character-of-line'
@@ -105,3 +105,50 @@
# Atom Specific
'ctrl-W': 'editor:select-word'
# Sublime Parity
'cmd-a': 'core:select-all'
'cmd-alt-p': 'editor:log-cursor-scope'
'cmd-k cmd-u': 'editor:upper-case'
'cmd-k cmd-l': 'editor:lower-case'
'body.platform-darwin .editor:not(.mini)':
# Atom specific
'alt-cmd-z': 'editor:checkout-head-revision'
'cmd-<': 'editor:scroll-to-cursor'
'alt-cmd-ctrl-f': 'editor:fold-selection'
'cmd-=': 'editor:auto-indent'
# Sublime Parity
'cmd-enter': 'editor:newline-below'
'cmd-shift-enter': 'editor:newline-above'
'cmd-]': 'editor:indent-selected-rows'
'cmd-[': 'editor:outdent-selected-rows'
'ctrl-cmd-up': 'editor:move-line-up'
'ctrl-cmd-down': 'editor:move-line-down'
'cmd-/': 'editor:toggle-line-comments'
'cmd-j': 'editor:join-line'
'cmd-D': 'editor:duplicate-line'
'cmd-alt-[': 'editor:fold-current-row'
'cmd-alt-]': 'editor:unfold-current-row'
'cmd-alt-{': 'editor:fold-all' # Atom Specific
'cmd-alt-}': 'editor:unfold-all' # Atom Specific
'cmd-k cmd-0': 'editor:unfold-all'
'cmd-k cmd-1': 'editor:fold-at-indent-level-1'
'cmd-k cmd-2': 'editor:fold-at-indent-level-2'
'cmd-k cmd-3': 'editor:fold-at-indent-level-3'
'cmd-k cmd-4': 'editor:fold-at-indent-level-4'
'cmd-k cmd-5': 'editor:fold-at-indent-level-5'
'cmd-k cmd-6': 'editor:fold-at-indent-level-6'
'cmd-k cmd-7': 'editor:fold-at-indent-level-7'
'cmd-k cmd-8': 'editor:fold-at-indent-level-8'
'cmd-k cmd-9': 'editor:fold-at-indent-level-9'
# allow standard input fields to work correctly
'body.platform-darwin input:not(.hidden-input), body.platform-darwin .native-key-bindings':
'cmd-z': 'native!'
'cmd-Z': 'native!'
'cmd-x': 'native!'
'cmd-c': 'native!'
'cmd-v': 'native!'

View File

@@ -45,11 +45,58 @@
'ctrl-k down': 'pane:split-down' # Atom Specific
'ctrl-k left': 'pane:split-left' # Atom Specific
'ctrl-k right': 'pane:split-right' # Atom Specific
'ctrl-k meta-w': 'pane:close' # Atom Specific
'ctrl-k alt-meta-w': 'pane:close-other-items' # Atom Specific
'ctrl-k meta-left': 'window:focus-previous-pane'
'ctrl-k meta-right': 'window:focus-next-pane'
'ctrl-k ctrl-w': 'pane:close' # Atom Specific
'ctrl-k alt-ctrl-w': 'pane:close-other-items' # Atom Specific
'ctrl-k ctrl-left': 'window:focus-previous-pane'
'ctrl-k ctrl-right': 'window:focus-next-pane'
'.platform-win32 .editor':
# Windows specific
'ctrl-delete': 'editor:backspace-to-beginning-of-word'
# Sublime Parity
'ctrl-a': 'core:select-all'
'ctrl-alt-p': 'editor:log-cursor-scope'
'ctrl-k ctrl-u': 'editor:upper-case'
'ctrl-k ctrl-l': 'editor:lower-case'
'.platform-win32 .editor:not(.mini)':
# Atom specific
'alt-ctrl-z': 'editor:checkout-head-revision'
'ctrl-<': 'editor:scroll-to-cursor'
'alt-ctrl-f': 'editor:fold-selection'
'ctrl-=': 'editor:auto-indent'
# Sublime Parity
'ctrl-enter': 'editor:newline-below'
'ctrl-shift-enter': 'editor:newline-above'
'ctrl-]': 'editor:indent-selected-rows'
'ctrl-[': 'editor:outdent-selected-rows'
'ctrl-up': 'editor:move-line-up'
'ctrl-down': 'editor:move-line-down'
'ctrl-/': 'editor:toggle-line-comments'
'ctrl-j': 'editor:join-line'
'ctrl-D': 'editor:duplicate-line'
'ctrl-alt-[': 'editor:fold-current-row'
'ctrl-alt-]': 'editor:unfold-current-row'
'ctrl-alt-{': 'editor:fold-all' # Atom Specific
'ctrl-alt-}': 'editor:unfold-all' # Atom Specific
'ctrl-k ctrl-0': 'editor:unfold-all'
'ctrl-k ctrl-1': 'editor:fold-at-indent-level-1'
'ctrl-k ctrl-2': 'editor:fold-at-indent-level-2'
'ctrl-k ctrl-3': 'editor:fold-at-indent-level-3'
'ctrl-k ctrl-4': 'editor:fold-at-indent-level-4'
'ctrl-k ctrl-5': 'editor:fold-at-indent-level-5'
'ctrl-k ctrl-6': 'editor:fold-at-indent-level-6'
'ctrl-k ctrl-7': 'editor:fold-at-indent-level-7'
'ctrl-k ctrl-8': 'editor:fold-at-indent-level-8'
'ctrl-k ctrl-9': 'editor:fold-at-indent-level-9'
# allow standard input fields to work correctly
'.platform-win32 input:not(.hidden-input), .platform-win32 .native-key-bindings':
'ctrl-z': 'native!'
'ctrl-Z': 'native!'
'ctrl-x': 'native!'
'ctrl-c': 'native!'
'ctrl-v': 'native!'

View File

@@ -9,7 +9,7 @@
"bugs": {
"url": "https://github.com/atom/atom/issues"
},
"atomShellVersion": "0.6.10",
"atomShellVersion": "0.6.11",
"dependencies": {
"async": "0.2.6",
"bootstrap": "git://github.com/twbs/bootstrap.git#v3.0.0",
@@ -72,40 +72,40 @@
"solarized-dark-syntax": "0.4.0",
"archive-view": "0.14.0",
"autocomplete": "0.15.0",
"autoflow": "0.7.0",
"autoflow": "0.9.0",
"autosave": "0.7.0",
"bookmarks": "0.12.0",
"bookmarks": "0.13.0",
"bracket-matcher": "0.12.0",
"command-logger": "0.7.0",
"command-palette": "0.9.0",
"dev-live-reload": "0.16.0",
"editor-stats": "0.6.0",
"command-palette": "0.10.0",
"dev-live-reload": "0.17.0",
"editor-stats": "0.7.0",
"exception-reporting": "0.7.0",
"find-and-replace": "0.47.0",
"fuzzy-finder": "0.24.0",
"gists": "0.8.0",
"find-and-replace": "0.48.0",
"fuzzy-finder": "0.25.0",
"gists": "0.9.0",
"git-diff": "0.16.0",
"github-sign-in": "0.10.0",
"go-to-line": "0.8.0",
"grammar-selector": "0.10.0",
"image-view": "0.8.0",
"keybinding-resolver": "0.4.0",
"link": "0.8.0",
"github-sign-in": "0.11.0",
"go-to-line": "0.9.0",
"grammar-selector": "0.11.0",
"image-view": "0.9.0",
"keybinding-resolver": "0.5.0",
"link": "0.9.0",
"markdown-preview": "0.19.0",
"metrics": "0.12.0",
"package-generator": "0.21.0",
"release-notes": "0.12.0",
"settings-view": "0.46.0",
"settings-view": "0.47.0",
"snippets": "0.15.0",
"spell-check": "0.14.0",
"spell-check": "0.15.0",
"status-bar": "0.22.0",
"styleguide": "0.12.0",
"symbols-view": "0.23.0",
"styleguide": "0.13.0",
"symbols-view": "0.24.0",
"tabs": "0.11.0",
"terminal": "0.18.0",
"terminal": "0.19.0",
"timecop": "0.10.0",
"to-the-hubs": "0.12.0",
"tree-view": "0.37.0",
"to-the-hubs": "0.13.0",
"tree-view": "0.38.0",
"visual-bell": "0.4.0",
"whitespace": "0.9.0",
"wrap-guide": "0.6.0",

View File

@@ -21,19 +21,19 @@ describe "Keymap", ->
describe ".handleKeyEvent(event)", ->
deleteCharHandler = null
insertCharHandler = null
metaZHandler = null
commandZHandler = null
beforeEach ->
keymap.bindKeys 'name', '.command-mode', 'x': 'deleteChar'
keymap.bindKeys 'name', '.insert-mode', 'x': 'insertChar'
keymap.bindKeys 'name', '.command-mode', 'meta-z': 'metaZPressed'
keymap.bindKeys 'name', '.command-mode', 'cmd-z': 'commandZPressed'
deleteCharHandler = jasmine.createSpy('deleteCharHandler')
insertCharHandler = jasmine.createSpy('insertCharHandler')
metaZHandler = jasmine.createSpy('metaZHandler')
commandZHandler = jasmine.createSpy('commandZHandler')
fragment.on 'deleteChar', deleteCharHandler
fragment.on 'insertChar', insertCharHandler
fragment.on 'metaZPressed', metaZHandler
fragment.on 'commandZPressed', commandZHandler
describe "when no binding matches the event's keystroke", ->
it "does not return false so the event continues to propagate", ->
@@ -45,7 +45,7 @@ describe "Keymap", ->
result = keymap.handleKeyEvent(event)
expect(result).toBe(false)
expect(metaZHandler).toHaveBeenCalled()
expect(commandZHandler).toHaveBeenCalled()
describe "when at least one binding fully matches the event's keystroke", ->
describe "when the event's target node matches a selector with a matching binding", ->
@@ -291,12 +291,12 @@ describe "Keymap", ->
expect(keymap.keystrokeStringForEvent(keydownEvent('left'))).toBe 'left'
expect(keymap.keystrokeStringForEvent(keydownEvent('\b'))).toBe 'backspace'
describe "when ctrl, alt or meta is pressed with a non-modifier key", ->
describe "when ctrl, alt or command is pressed with a non-modifier key", ->
it "returns a string that identifies the key pressed", ->
expect(keymap.keystrokeStringForEvent(keydownEvent('a', altKey: true))).toBe 'alt-a'
expect(keymap.keystrokeStringForEvent(keydownEvent('[', metaKey: true))).toBe 'meta-['
expect(keymap.keystrokeStringForEvent(keydownEvent('[', metaKey: true))).toBe 'cmd-['
expect(keymap.keystrokeStringForEvent(keydownEvent('*', ctrlKey: true))).toBe 'ctrl-*'
expect(keymap.keystrokeStringForEvent(keydownEvent('left', ctrlKey: true, metaKey: true, altKey: true))).toBe 'alt-ctrl-meta-left'
expect(keymap.keystrokeStringForEvent(keydownEvent('left', ctrlKey: true, metaKey: true, altKey: true))).toBe 'alt-ctrl-cmd-left'
describe "when shift is pressed when a non-modifer key", ->
it "returns a string that identifies the key pressed", ->
@@ -317,13 +317,13 @@ describe "Keymap", ->
describe "when multiple bindings match a keystroke", ->
it "only returns bindings that match the most specific selector", ->
keymap.bindKeys 'name', '.command-mode', 'g': 'command-mode'
keymap.bindKeys 'name', '.command-mode .grandchild-node', 'g': 'command-and-grandchild-node'
keymap.bindKeys 'name', '.command-mode', 'g': 'cmd-mode'
keymap.bindKeys 'name', '.command-mode .grandchild-node', 'g': 'cmd-and-grandchild-node'
keymap.bindKeys 'name', '.grandchild-node', 'g': 'grandchild-node'
bindings = keymap.keyBindingsMatchingElement(fragment.find('.grandchild-node'))
expect(bindings).toHaveLength 3
expect(bindings[0].command).toEqual "command-and-grandchild-node"
expect(bindings[0].command).toEqual "cmd-and-grandchild-node"
describe ".keyBindingsForCommandMatchingElement(element)", ->
beforeEach ->

View File

@@ -137,7 +137,7 @@ class ApplicationMenu
modifiers.push("Shift") if key != key.toLowerCase()
modifiers = modifiers.map (modifier) ->
modifier.replace(/shift/ig, "Shift")
.replace(/meta/ig, "Command")
.replace(/cmd/ig, "Command")
.replace(/ctrl/ig, "Ctrl")
.replace(/alt/ig, "Alt")

View File

@@ -6,7 +6,7 @@ CSON = require 'season'
KeyBinding = require './key-binding'
{Emitter} = require 'emissary'
Modifiers = ['alt', 'control', 'ctrl', 'shift', 'meta']
Modifiers = ['alt', 'control', 'ctrl', 'shift', 'cmd']
# Internal: Associates keymaps with actions.
#
@@ -96,7 +96,7 @@ class Keymap
if event.ctrlKey and key not in Modifiers
modifiers.push 'ctrl'
if event.metaKey and key not in Modifiers
modifiers.push 'meta'
modifiers.push 'cmd'
if event.shiftKey and key not in Modifiers
isNamedKey = key.length > 1