Handle multibyte character input by KeyStroke #713
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.
Depends on #712
Third step of #708
LineEditor was handling multibyte input with
@multibyte_buffer. I think it should be done in keystroke recognizing layer.We can handle multibyte character by
:matching | :matched | :matching_matchedmechanism just like other keystroke inputs.Bug fix
When invalid byte is input to Reline, Reline does not respond to any key except arrow keys.
You can not input anything because
@multibyte_buffernever become a valid string.This pull request considers invalid string as
:matching_matched. It can be a broken string (:matched) and it can also be part of a valid multibyte character (:matching).This way, if Reline doesn't receive next bytes within keyseq timeout, Reline can ignore the broken input bytes.