Fix a bug where the IME pre-edit would desync from Zed #12651
Merged
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.
fixes #11829
In #7494, we introduced IME event buffering, so that we could preempt the IME with a keystroke event in some cases. However, this caused a desynchronization bug in long multi-step IME composition, such as the pre-edit used in the Japanese Romaji keyboard (and other languages). We found that this was due to the IME issuing actions, and then immediately querying the editor's state before we had applied those actions. Therefore, this PR removes IME action buffering.
We have tested all of the cases in the
handle_key_event
documentation and added a few of our own.Release Notes: