vi-mode - Bug - Fix freeze when using _i"/_a" in escaped string #1716
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.
Change Description
The fix is for the bug in Issue #1657.
This affects code in operator pending mode, so the editor will freeze when using:
This occurs as when the escape character is found, it does not move the character forward/back, causing an infinite loop of finding the escape char.
As shown in this seek backward example, I have changed it to skip over 2 chars (the escape and the quote char). I did the same for when seeking forward.
This behaviour to ignore escape chars, which seems intended for Lem's vi-mode(just bugged), does match vanilla vim so good to have.
Testing
I have updated the tests to account for this case.
This image shows the rendered test outputs which can help you decipher the string in the tests in you want:
Other Bugs
I found some more bugs that are existing already with this functionality, but no more editor freezes, just unexpected behavious in some cases.
I hope to fix them with a bit of changes to the logic around finding quotes specifically.
Feature