From 9079bcb103fca3cf672cc023fc5d3b2726a7c04a Mon Sep 17 00:00:00 2001 From: Corey Johnson & Nathan Sobo Date: Mon, 14 May 2012 16:18:37 -0600 Subject: [PATCH] Meta-a selects everything --- spec/app/editor-spec.coffee | 6 ++++++ src/app/composite-selection.coffee | 3 +++ src/app/editor.coffee | 2 ++ src/app/keymaps/editor.coffee | 1 + src/app/selection.coffee | 3 +++ 5 files changed, 15 insertions(+) diff --git a/spec/app/editor-spec.coffee b/spec/app/editor-spec.coffee index 5efcc7043..2bd793ed0 100644 --- a/spec/app/editor-spec.coffee +++ b/spec/app/editor-spec.coffee @@ -407,6 +407,7 @@ describe "Editor", -> otherEditor.simulateDomAttachment() expect(otherEditor.setMaxLineLength).toHaveBeenCalled() + describe "when some lines at the end of the buffer are not visible on screen when the editor is attached", -> beforeEach -> editor.attachToDom(heightInLines: 5.5) @@ -1330,6 +1331,11 @@ describe "Editor", -> expect(editor.getSelection().getBufferRange()).toEqual [[9,3], [12,2]] expect(editor.getSelection().isReversed()).toBeFalsy() + describe "select-all", -> + it "selects the entire buffer", -> + editor.trigger 'select-all' + expect(editor.getSelection().getBufferRange()).toEqual buffer.getRange() + describe "select-to-beginning-of-line", -> it "selects text from cusor position to beginning of line", -> editor.setCursorScreenPosition [12,2] diff --git a/src/app/composite-selection.coffee b/src/app/composite-selection.coffee index ff8f6afa7..691041179 100644 --- a/src/app/composite-selection.coffee +++ b/src/app/composite-selection.coffee @@ -127,6 +127,9 @@ class CompositeSeleciton selectToTop: -> @expandSelectionsBackward (selection) => selection.selectToTop() + selectAll: -> + @expandSelectionsForward (selection) => selection.selectAll() + selectToBottom: -> @expandSelectionsForward (selection) => selection.selectToBottom() diff --git a/src/app/editor.coffee b/src/app/editor.coffee index 3584c1ccb..a195c4634 100644 --- a/src/app/editor.coffee +++ b/src/app/editor.coffee @@ -140,6 +140,7 @@ class Editor extends View 'select-to-beginning-of-line': @selectToBeginningOfLine 'select-to-end-of-word': @selectToEndOfWord 'select-to-beginning-of-word': @selectToBeginningOfWord + 'select-all': @selectAll for name, method of editorBindings do (name, method) => @@ -588,6 +589,7 @@ class Editor extends View selectDown: -> @compositeSelection.selectDown() selectToTop: -> @compositeSelection.selectToTop() selectToBottom: -> @compositeSelection.selectToBottom() + selectAll: -> @compositeSelection.selectAll() selectToBeginningOfLine: -> @compositeSelection.selectToBeginningOfLine() selectToEndOfLine: -> @compositeSelection.selectToEndOfLine() selectToBeginningOfWord: -> @compositeSelection.selectToBeginningOfWord() diff --git a/src/app/keymaps/editor.coffee b/src/app/keymaps/editor.coffee index 359952caf..37d2e9a8f 100644 --- a/src/app/keymaps/editor.coffee +++ b/src/app/keymaps/editor.coffee @@ -16,6 +16,7 @@ window.keymap.bindKeys '.editor', 'shift-left': 'select-left' 'shift-up': 'select-up' 'shift-down': 'select-down' + 'meta-a': 'select-all' enter: 'newline' tab: 'tab' backspace: 'backspace' diff --git a/src/app/selection.coffee b/src/app/selection.coffee index 52c1b9f82..474f53ca6 100644 --- a/src/app/selection.coffee +++ b/src/app/selection.coffee @@ -206,6 +206,9 @@ class Selection extends View selectToBottom: -> @modifySelection => @cursor.moveToBottom() + selectAll: -> + @setBufferRange(@editor.buffer.getRange()) + selectToBeginningOfLine: -> @modifySelection => @cursor.moveToBeginningOfLine()