[Bug] Pressing . twice after an Ex command with no prior edit state causes a freeze
#9809
+3
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it:
Fixes a freeze when pressing
.twice right after executing a command that is not dot-repeatable (e.g.,:w,:q,:bn) at startup.Expected
.after a non-repeatable command is a no-op (or repeats the last edit, if any)Actual
.twice after:wleads to an unresponsive stateRoot Cause
lastCommandDotRepeatable=falseandglobalState.previousFullAction=undefinedlastCommandDotRepeatableis reset totrue.,CommandDotruns but adds no transformations becausepreviousFullActionis undefinedCommandDot.createsUndoPoint = true, an emptyRecordedStateis saved intopreviousFullAction., replaying this emptyRecordedStateviarerunRecordedStatecauses the invalid state/freezeWhich issue(s) this PR fixes
Fixes #9808
Special notes for your reviewer
Build & Test evidence
Build log (
yarn build)Test log (tail of
npx gulp test)behavior before this change
example1.txt.-.test.-.Visual.Studio.Code.2025-11-01.08-50-51.mp4
behavior after this change
example1.txt.-.test.-.Visual.Studio.Code.2025-11-01.11-55-21.mp4