Skip to content
This repository was archived by the owner on Apr 6, 2018. It is now read-only.

Commit 10e48d2

Browse files
committed
fixing undo problem
1 parent be2b4d8 commit 10e48d2

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

lib/operators/input.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class Insert extends Operator
1212

1313
isComplete: -> @standalone or super
1414

15-
confirmChanges: (changes, interrupted) ->
15+
confirmChanges: (changes, insertionCheckpoint, {interrupted}={}) ->
1616
bundler = new TransactionBundler(changes)
1717
@typedText = bundler.buildInsertText()
1818
if @count > 1 and not interrupted

lib/vim-state.coffee

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -409,23 +409,23 @@ class VimState
409409
deactivateInsertMode: ->
410410
return unless @mode in [null, 'insert']
411411
@editorElement.component.setInputEnabled(false)
412-
@editor.groupChangesSinceCheckpoint(@insertionCheckpoint)
413412
changes = getChangesSinceCheckpoint(@editor.buffer, @insertionCheckpoint)
414413
item = @inputOperator(@history[0])
415-
@insertionCheckpoint = null
416414
if item?
417-
item.confirmChanges(changes)
415+
item.confirmChanges(changes, @insertionCheckpoint)
416+
@editor.groupChangesSinceCheckpoint(@insertionCheckpoint)
417+
@insertionCheckpoint = null
418418
for cursor in @editor.getCursors()
419419
cursor.moveLeft() unless cursor.isAtBeginningOfLine()
420420

421421
interruptInsertMode: ->
422422
return unless @mode is 'insert'
423-
@editor.groupChangesSinceCheckpoint(@insertionCheckpoint)
424423
changes = getChangesSinceCheckpoint(@editor.buffer, @insertionCheckpoint)
425424
item = @inputOperator(@history[0])
426-
@insertionCheckpoint = null
427425
if item?
428-
item.confirmChanges(changes, interrupted: true)
426+
item.confirmChanges(changes, @insertionCheckpoint, interrupted: true)
427+
@editor.groupChangesSinceCheckpoint(@insertionCheckpoint)
428+
@insertionCheckpoint = null
429429
@setInsertionCheckpoint()
430430

431431

spec/operators-spec.coffee

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1408,6 +1408,7 @@ describe "Operators", ->
14081408
keydown 'd'
14091409
keydown 'd'
14101410
keydown 'u'
1411+
editor.setCursorScreenPosition([0, 0])
14111412
keydown '2'
14121413
keydown '.'
14131414
keydown '.'

0 commit comments

Comments
 (0)