From 4f0e2c1e9b26cfd034c0c9394c22a2176bb8d7c1 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Thu, 10 Jan 2013 09:31:57 -0800 Subject: [PATCH] Add editor.autoIndentPastedText config option --- spec/app/edit-session-spec.coffee | 24 ++++++++++++++++++++++++ src/app/edit-session.coffee | 7 ++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/spec/app/edit-session-spec.coffee b/spec/app/edit-session-spec.coffee index 3de078143..67a0ec47c 100644 --- a/spec/app/edit-session-spec.coffee +++ b/spec/app/edit-session-spec.coffee @@ -1943,3 +1943,27 @@ describe "EditSession", -> expect(editSession.lineForBufferRow(2)).toBe " " editSession.indent() expect(editSession.lineForBufferRow(2)).toBe " " + + describe "editor.autoIndentPastedText", -> + it "does not auto-indent pasted text by default", -> + editSession.setCursorBufferPosition([2, 0]) + editSession.insertText("0\n 2\n 4\n") + editSession.getSelection().setBufferRange([[2,0], [5,0]]) + editSession.cutSelectedText() + + editSession.pasteText() + expect(editSession.lineForBufferRow(2)).toBe "0" + expect(editSession.lineForBufferRow(3)).toBe " 2" + expect(editSession.lineForBufferRow(4)).toBe " 4" + + it "auto-indents pasted text when editor.autoIndentPastedText is true", -> + config.set("editor.autoIndentPastedText", true) + editSession.setCursorBufferPosition([2, 0]) + editSession.insertText("0\n 2\n 4\n") + editSession.getSelection().setBufferRange([[2,0], [5,0]]) + editSession.cutSelectedText() + + editSession.pasteText() + expect(editSession.lineForBufferRow(2)).toBe " 0" + expect(editSession.lineForBufferRow(3)).toBe " 2" + expect(editSession.lineForBufferRow(4)).toBe " 4" diff --git a/src/app/edit-session.coffee b/src/app/edit-session.coffee index e5d437a23..9b08be236 100644 --- a/src/app/edit-session.coffee +++ b/src/app/edit-session.coffee @@ -160,6 +160,9 @@ class EditSession shouldAutoIndent: -> config.get("editor.autoIndent") ? true + shouldAutoIndentPastedText: -> + config.get("editor.autoIndentPastedText") ? false + insertText: (text, options={}) -> options.autoIndent ?= @shouldAutoIndent() @mutateSelectedText (selection) -> selection.insertText(text, options) @@ -220,12 +223,14 @@ class EditSession selection.copy(maintainPasteboard) maintainPasteboard = true - pasteText: (options={})-> + pasteText: (options={}) -> options.normalizeIndent ?= true + options.autoIndent ?= @shouldAutoIndentPastedText() [text, metadata] = pasteboard.read() _.extend(options, metadata) if metadata + console.log options @insertText(text, options) undo: ->