From 7465ae5052d6aa8cb934f2a498c98f03efeeb9af Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 8 Jan 2013 09:06:20 -0800 Subject: [PATCH] Close all editors in pane with meta-P --- spec/app/editor-spec.coffee | 12 ++++++++++++ src/app/editor.coffee | 7 +++++++ src/app/keymaps/editor.cson | 1 + 3 files changed, 20 insertions(+) diff --git a/spec/app/editor-spec.coffee b/spec/app/editor-spec.coffee index 1542a6641..2f5439a21 100644 --- a/spec/app/editor-spec.coffee +++ b/spec/app/editor-spec.coffee @@ -2077,3 +2077,15 @@ describe "Editor", -> expect(atom.confirm).toHaveBeenCalled() expect(editor.getEditSessions().length).toBe 2 expect(editor.getEditSessions()[0].buffer.isModified()).toBeTruthy() + + describe ".destroyAllEditSessions()", -> + it "destroys every edit session", -> + rootView.open('sample.txt') + rootView.open('css.css') + rootView.open('coffee.coffee') + rootView.open('hello.rb') + expect(editor.getEditSessions().length).toBe 5 + editor.setActiveEditSessionIndex(2) + editor.destroyAllEditSessions() + expect(editor.pane()).toBeUndefined() + expect(editor.getEditSessions().length).toBe 0 diff --git a/src/app/editor.coffee b/src/app/editor.coffee index e6864ad60..ca838aba2 100644 --- a/src/app/editor.coffee +++ b/src/app/editor.coffee @@ -177,6 +177,7 @@ class Editor extends View 'editor:log-cursor-scope': @logCursorScope 'editor:checkout-head-revision': @checkoutHead 'editor:close-other-editors': @destroyInactiveEditSessions + 'editor:close-all-editors': @destroyAllEditSessions documentation = {} for name, method of editorBindings @@ -470,6 +471,12 @@ class Editor extends View index++ if @activeEditSession is @editSessions[index] @destroyEditSessionIndex(index, destroyIndex) if @editSessions[index] destroyIndex(0) + + destroyAllEditSessions: -> + destroyIndex = (index) => + @destroyEditSessionIndex(index, destroyIndex) if @editSessions[index] + destroyIndex(0) + loadNextEditSession: -> nextIndex = (@getActiveEditSessionIndex() + 1) % @editSessions.length @setActiveEditSessionIndex(nextIndex) diff --git a/src/app/keymaps/editor.cson b/src/app/keymaps/editor.cson index 78be6a273..fd8eea35b 100644 --- a/src/app/keymaps/editor.cson +++ b/src/app/keymaps/editor.cson @@ -33,3 +33,4 @@ 'meta-u': 'editor:upper-case' 'meta-U': 'editor:lower-case' 'alt-meta-w': 'editor:close-other-editors' + 'meta-P': 'editor:close-all-editors'