mirror of
https://github.com/atom/atom.git
synced 2026-02-13 16:14:59 -05:00
Add TextEditor::withGroupingInterval
This method temporarily instructs the editor to apply undo grouping with a given interval. This way, undo grouping can be made optional without adding optional arguments to every buffer manipulation method.
This commit is contained in:
@@ -68,6 +68,7 @@ class TextEditor extends Model
|
||||
suppressSelectionMerging: false
|
||||
updateBatchDepth: 0
|
||||
selectionFlashDuration: 500
|
||||
groupingInterval: 0
|
||||
|
||||
@delegatesMethods 'suggestedIndentForBufferRow', 'autoIndentBufferRow', 'autoIndentBufferRows',
|
||||
'autoDecreaseIndentForBufferRow', 'toggleLineCommentForBufferRow', 'toggleLineCommentsForBufferRows',
|
||||
@@ -1097,7 +1098,7 @@ class TextEditor extends Model
|
||||
# execution and revert any changes performed up to the abortion.
|
||||
#
|
||||
# * `fn` A {Function} to call inside the transaction.
|
||||
transact: (fn) -> @buffer.transact(fn)
|
||||
transact: (fn) -> @buffer.transact(fn, @groupingInterval)
|
||||
|
||||
# Extended: Start an open-ended transaction.
|
||||
#
|
||||
@@ -1105,7 +1106,7 @@ class TextEditor extends Model
|
||||
# transaction. If you nest calls to transactions, only the outermost
|
||||
# transaction is considered. You must match every begin with a matching
|
||||
# commit, but a single call to abort will cancel all nested transactions.
|
||||
beginTransaction: -> @buffer.beginTransaction()
|
||||
beginTransaction: -> @buffer.beginTransaction(@groupingInterval)
|
||||
|
||||
# Extended: Commit an open-ended transaction started with {::beginTransaction}
|
||||
# and push it to the undo stack.
|
||||
@@ -1117,6 +1118,19 @@ class TextEditor extends Model
|
||||
# within the transaction.
|
||||
abortTransaction: -> @buffer.abortTransaction()
|
||||
|
||||
# Extended: Set the time interval over which undo/redo operations are grouped.
|
||||
#
|
||||
# * `interval` A {Number} of milliseconds within which operations should be
|
||||
# grouped with respec to undo/redo
|
||||
# * `fn` A {Function} to call with the given interval setting
|
||||
withGroupingInterval: (interval, fn) ->
|
||||
previousInterval = @groupingInterval
|
||||
@groupingInterval = interval
|
||||
try
|
||||
fn()
|
||||
finally
|
||||
@groupingInterval = previousInterval
|
||||
|
||||
###
|
||||
Section: TextEditor Coordinates
|
||||
###
|
||||
|
||||
Reference in New Issue
Block a user