From edbd37887993e178296903a699c0f583eaaeb3b4 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Mon, 2 Apr 2012 08:57:08 -0700 Subject: [PATCH] All keybindings are stored in the src/keybindings folder now --- spec/spec-helper.coffee | 1 - src/atom/command-panel.coffee | 6 --- src/atom/editor.coffee | 27 ----------- src/atom/file-finder.coffee | 3 -- .../{keybindings => keymaps}/apple.coffee | 0 src/atom/keymaps/command-panel.coffee | 9 ++++ src/atom/keymaps/editor.coffee | 30 +++++++++++++ .../{keybindings => keymaps}/emacs.coffee | 0 src/atom/keymaps/file-finder.coffee | 6 +++ src/atom/root-view.coffee | 8 ---- src/atom/window.coffee | 45 +++++++++---------- 11 files changed, 65 insertions(+), 70 deletions(-) rename src/atom/{keybindings => keymaps}/apple.coffee (100%) create mode 100644 src/atom/keymaps/command-panel.coffee create mode 100644 src/atom/keymaps/editor.coffee rename src/atom/{keybindings => keymaps}/emacs.coffee (100%) create mode 100644 src/atom/keymaps/file-finder.coffee diff --git a/spec/spec-helper.coffee b/spec/spec-helper.coffee index 5ce4c1245..146a6456c 100644 --- a/spec/spec-helper.coffee +++ b/spec/spec-helper.coffee @@ -8,7 +8,6 @@ require 'window' window.showConsole() beforeEach -> - window.keymap = new Keymap window.resetTimeouts() afterEach -> diff --git a/src/atom/command-panel.coffee b/src/atom/command-panel.coffee index 55d9c46e6..e7eb9d0f7 100644 --- a/src/atom/command-panel.coffee +++ b/src/atom/command-panel.coffee @@ -16,12 +16,6 @@ class CommandPanel extends View initialize: ({@rootView})-> requireStylesheet 'command-panel.css' - window.keymap.bindKeys '.command-panel .editor', - escape: 'command-panel:toggle' - enter: 'command-panel:execute' - - window.keymap.bindKeys '.editor', - 'meta-g': 'command-panel:repeat-relative-address' @commandInterpreter = new CommandInterpreter() @history = [] diff --git a/src/atom/editor.coffee b/src/atom/editor.coffee index 04c1bd3cb..7b490325d 100644 --- a/src/atom/editor.coffee +++ b/src/atom/editor.coffee @@ -41,8 +41,6 @@ class Editor extends View initialize: ({buffer}) -> requireStylesheet 'editor.css' requireStylesheet 'theme/twilight.css' - require 'keybindings/emacs' - require 'keybindings/apple' @id = Editor.idCounter++ @editSessionsByBufferId = {} @@ -53,31 +51,6 @@ class Editor extends View @autoIndent = true bindKeys: -> - window.keymap.bindKeys '.editor', - 'meta-s': 'save' - right: 'move-right' - left: 'move-left' - down: 'move-down' - up: 'move-up' - 'shift-right': 'select-right' - 'shift-left': 'select-left' - 'shift-up': 'select-up' - 'shift-down': 'select-down' - enter: 'newline' - backspace: 'backspace' - 'delete': 'delete' - 'meta-x': 'cut' - 'meta-c': 'copy' - 'meta-v': 'paste' - 'meta-z': 'undo' - 'meta-Z': 'redo' - 'alt-meta-w': 'toggle-soft-wrap' - 'alt-meta-f': 'fold-selection' - 'alt-meta-left': 'split-left' - 'alt-meta-right': 'split-right' - 'alt-meta-up': 'split-up' - 'alt-meta-down': 'split-down' - @on 'save', => @save() @on 'move-right', => @moveCursorRight() @on 'move-left', => @moveCursorLeft() diff --git a/src/atom/file-finder.coffee b/src/atom/file-finder.coffee index 8181f016d..a1cf9c165 100644 --- a/src/atom/file-finder.coffee +++ b/src/atom/file-finder.coffee @@ -19,9 +19,6 @@ class FileFinder extends View @previousFocusedElement = $(document.activeElement) @populatePathList() - window.keymap.bindKeys ".file-finder .editor", - 'enter': 'file-finder:select-file', - 'escape': 'file-finder:close' @on 'file-finder:close', => @remove() @on 'move-up', => @moveUp() diff --git a/src/atom/keybindings/apple.coffee b/src/atom/keymaps/apple.coffee similarity index 100% rename from src/atom/keybindings/apple.coffee rename to src/atom/keymaps/apple.coffee diff --git a/src/atom/keymaps/command-panel.coffee b/src/atom/keymaps/command-panel.coffee new file mode 100644 index 000000000..9155e1064 --- /dev/null +++ b/src/atom/keymaps/command-panel.coffee @@ -0,0 +1,9 @@ +window.keymap.bindKeys '*' + 'meta-:': 'command-panel:toggle' + +window.keymap.bindKeys '.command-panel .editor', + escape: 'command-panel:toggle' + enter: 'command-panel:execute' + +window.keymap.bindKeys '.editor', + 'meta-g': 'command-panel:repeat-relative-address' \ No newline at end of file diff --git a/src/atom/keymaps/editor.coffee b/src/atom/keymaps/editor.coffee new file mode 100644 index 000000000..0c90564c3 --- /dev/null +++ b/src/atom/keymaps/editor.coffee @@ -0,0 +1,30 @@ +window.keymap.bindKeys '*' + 'meta-s': 'save' + 'meta-w': 'close' + 'alt-meta-i': 'show-console' + 'meta-f': 'find-in-file' + +window.keymap.bindKeys '.editor', + 'meta-s': 'save' + right: 'move-right' + left: 'move-left' + down: 'move-down' + up: 'move-up' + 'shift-right': 'select-right' + 'shift-left': 'select-left' + 'shift-up': 'select-up' + 'shift-down': 'select-down' + enter: 'newline' + backspace: 'backspace' + 'delete': 'delete' + 'meta-x': 'cut' + 'meta-c': 'copy' + 'meta-v': 'paste' + 'meta-z': 'undo' + 'meta-Z': 'redo' + 'alt-meta-w': 'toggle-soft-wrap' + 'alt-meta-f': 'fold-selection' + 'alt-meta-left': 'split-left' + 'alt-meta-right': 'split-right' + 'alt-meta-up': 'split-up' + 'alt-meta-down': 'split-down' \ No newline at end of file diff --git a/src/atom/keybindings/emacs.coffee b/src/atom/keymaps/emacs.coffee similarity index 100% rename from src/atom/keybindings/emacs.coffee rename to src/atom/keymaps/emacs.coffee diff --git a/src/atom/keymaps/file-finder.coffee b/src/atom/keymaps/file-finder.coffee new file mode 100644 index 000000000..d51c9dde1 --- /dev/null +++ b/src/atom/keymaps/file-finder.coffee @@ -0,0 +1,6 @@ +window.keymap.bindKeys '*' + 'meta-t': 'toggle-file-finder' + +window.keymap.bindKeys ".file-finder .editor", + 'enter': 'file-finder:select-file', + 'escape': 'file-finder:close' diff --git a/src/atom/root-view.coffee b/src/atom/root-view.coffee index 8a352efb2..71b81d891 100644 --- a/src/atom/root-view.coffee +++ b/src/atom/root-view.coffee @@ -22,14 +22,6 @@ class RootView extends View @editors = [] @createProject(path) - window.keymap.bindKeys '*' - 'meta-s': 'save' - 'meta-w': 'close' - 'meta-t': 'toggle-file-finder' - 'meta-:': 'command-panel:toggle' - 'alt-meta-i': 'show-console' - 'meta-f': 'find-in-file' - @on 'toggle-file-finder', => @toggleFileFinder() @on 'show-console', -> window.showConsole() @on 'find-in-file', => diff --git a/src/atom/window.coffee b/src/atom/window.coffee index 9f4c5e892..e7f4bf14a 100644 --- a/src/atom/window.coffee +++ b/src/atom/window.coffee @@ -1,23 +1,26 @@ +# This a weirdo file. We don't create a Window class, we just add stuff to +# the DOM window. + fs = require 'fs' _ = require 'underscore' $ = require 'jquery' -Keymap = require 'keymap' -RootView = require 'root-view' - -require 'jquery-extensions' -require 'underscore-extensions' - -# This a weirdo file. We don't create a Window class, we just add stuff to -# the DOM window. - windowAdditions = rootViewParentSelector: 'body' rootView: null keymap: null + setUpKeymap: -> + Keymap = require 'keymap' + + @keymap = new Keymap() + @keymap.bindDefaultKeys() + require(keymapPath) for keymapPath in fs.list(require.resolve("keymaps")) + + @_handleKeyEvent = (e) => @keymap.handleKeyEvent(e) + $(document).on 'keydown', @_handleKeyEvent + startup: (path) -> - @setUpKeymap() @attachRootView(path) @loadUserConfiguration() $(window).on 'close', => @close() @@ -29,18 +32,6 @@ windowAdditions = $(window).unbind('focus') $(window).unbind('blur') atom.windowClosed this - @tearDownKeymap() - - setUpKeymap: -> - @keymap = new Keymap() - @keymap.bindDefaultKeys() - - @_handleKeyEvent = (e) => @keymap.handleKeyEvent(e) - $(document).on 'keydown', @_handleKeyEvent - - tearDownKeymap: -> - @keymap.unbindDefaultKeys() - $(document).off 'keydown', @_handleKeyEvent attachRootView: (path) -> @rootView = new RootView {path} @@ -65,9 +56,13 @@ windowAdditions = onerror: -> @showConsole() -for key, value of windowAdditions - console.warn "DOMWindow already has a key named `#{key}`" if window[key] - window[key] = value +window[key] = value for key, value of windowAdditions +window.setUpKeymap() + +RootView = require 'root-view' + +require 'jquery-extensions' +require 'underscore-extensions' requireStylesheet 'reset.css' requireStylesheet 'atom.css'