Add editor.autoIndentPastedText config option

This commit is contained in:
Corey Johnson
2013-01-10 09:31:57 -08:00
parent d55dfc8a6f
commit 4f0e2c1e9b
2 changed files with 30 additions and 1 deletions

View File

@@ -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"

View File

@@ -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: ->