[Enhancement] Improve autocorrect undo history handling#6210
Merged
Conversation
Member
|
So, sorry for the delay, but it looks good and can be merged! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
This PR refactors autocorrect replacement handling to improve the UX of the undo history. It makes it so that, after an autocorrect replacement occurs, undoing the transaction first reverts the replacement without removing the inserted space/newline.
Changes
The replacement handling was refactored into two commands,
handleAutocorrectSpaceandhandleAutocorrectEnter, so that the respectivespaceorentertext insertions can occur before the autocorrect replacement happens. This improves UX for undoing autocorrect replacements.Because the replacement now occurs after the space or enter, when a user tries to undo the autocorrect replacement, they are able to do so without also removing the newly entered space or newline.
Additional information
Currently, when a user tries to undo the replacement, it undoes the entire initial text and insertion.
However, it's not as simple as adding the
isolateHistoryannotation. Then, they must undo the history twice, once to remove the space, and again to remove the replacement. This then throws the user into a precarious loop where, on the next space or newline, the replacement will be triggered again because the cursor is placed adjacent to the autocorrect text, and so the user is forced to do some gymnastics to prevent the autocorrect.This PR makes it so that a user has to undo the history once, and they can continue typing.
Tested on:
macOS 26