fix: improve handling of grapheme in OptimizedBuffer and GraphemeTracker#1006
Open
viralcodex wants to merge 9 commits into
Open
fix: improve handling of grapheme in OptimizedBuffer and GraphemeTracker#1006viralcodex wants to merge 9 commits into
viralcodex wants to merge 9 commits into
Conversation
Co-authored-by: Copilot <copilot@github.com>
Member
|
gpt found these. i have my head focused on some other things so i didn't think deeply about it but its worth to check out:
|
Co-authored-by: Copilot <copilot@github.com>
Contributor
Author
|
@simonklee , added a small utility that checks for grapheme id before adding to buffer and if its stale, returns early before adding anything to buffer. |
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.
Hi @kommander @simonklee ,
I have made some changes for the regression here (fixes: #971) based on the findings on my end.
So an overview is that now the grapheme.zig add() doesn't panic (throws) when it gets a WrongGeneration or InvalidId error, it deletes that grapheme id from the pool, only on OutOfMemory it throws (which i think makes sense)
also to handle clipping of characters outside the terminal area, some modifications are made to return early when such condition arises, specially in wide characters because the code assigns the grapheme id to them but if they clip it's never cleared or used.
This are the proposed changes based on my findings and overall understanding, I have also run some tests and the problem seems to not occur anymore.
please let me know if anything is missing or needs change from my side, it's my first time on such a bug so could be wrong on my end.
Thanks