Merge remote-tracking branch 'origin/command-extensions' into dev

Conflicts:
	spec/app/editor-spec.coffee
	spec/app/root-view-spec.coffee
	src/app/editor.coffee
	src/extensions/strip-trailing-whitespace.coffee
This commit is contained in:
Nathan Sobo
2013-01-09 14:18:10 -07:00
13 changed files with 216 additions and 6 deletions

View File

@@ -1127,3 +1127,20 @@ class Editor extends View
@clearRenderedLines()
@updateDisplay()
grammarChanged
bindToKeyedEvent: (key, event, callback) ->
binding = {}
binding[key] = event
window.keymap.bindKeys '.editor', binding
@on event, =>
callback(this, event)
replaceSelectedText: (replaceFn) ->
selection = @getSelection()
return false if selection.isEmpty()
text = replaceFn(@getTextInRange(selection.getBufferRange()))
return false if text is null or text is undefined
@insertText(text, select: true)
true

View File

@@ -258,3 +258,17 @@ class RootView extends View
saveAll: ->
editor.save() for editor in @getEditors()
eachEditor: (callback) ->
for editor in @getEditors()
callback(editor)
@on 'editor:attached', (e, editor) ->
callback(editor)
eachBuffer: (callback) ->
for buffer in @project.getBuffers()
callback(buffer)
@project.on 'buffer-created', (buffer) ->
callback(buffer)

View File

@@ -174,7 +174,10 @@ class Selection
text = @normalizeIndent(text, options) if options.normalizeIndent
@clear()
newBufferRange = @editSession.buffer.change(oldBufferRange, text)
@cursor.setBufferPosition(newBufferRange.end, skipAtomicTokens: true) if wasReversed
if options.select
@setBufferRange(newBufferRange, reverse: wasReversed)
else
@cursor.setBufferPosition(newBufferRange.end, skipAtomicTokens: true) if wasReversed
if @editSession.autoIndent and options.autoIndent
if text == '\n'