Repository navigation
fix(renderer): keep the whole-row write for widths the cell delta cannot model - #7
Merged
Merged
Conversation
Splitting the fork's popup and renderer work into upstream pull requests (Helvesec#233, Helvesec#234, Helvesec#235) added a regression test for a session switch made from inside a popup, sorted the unicode-width dependency, and replaced private names in a test fixture. Signed-off-by: Jiun Bae <jiunbae.623@gmail.com>
…not model The styled-row cell delta measured cells with plain unicode-width, while the server's grid uses rmux-core's model: its emoji override table, ZWJ, flag and skin-tone joining, VS16 widening and Hangul jamo composition, plus the codepoint-widths and variation-selector-always-wide options. Both rows were mis-measured alike, so the width check passed and the delta put text in the wrong column, e.g. a spinner next to a thumbs-up or a flag. Rows holding any character whose width the two models may disagree on now keep the whole-row write, and pane rows skip the cell delta entirely when the session's width options differ from the defaults. Signed-off-by: Jiun Bae <jiunbae.623@gmail.com>
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.
Two commits:
unicode-width, while the grid uses rmux-core's width model (emoji override table, ZWJ / flag / skin-tone joining, VS16 widening, Hangul jamo composition, and thecodepoint-widths/variation-selector-always-wideoptions). Both rows were mis-measured alike, so the width check passed and the delta put text in the wrong column — e.g.☝ ab→☝ acreplayed as☝ cb,👍🏽 ab→👍🏽 ab c, and a changed flag split into a lone regional indicator. Rows holding any character the two models may disagree on now keep the whole-row write, and pane rows skip the cell delta entirely when the session's width options are not the defaults. Bordered popup records get the character filter only (the popup cache has no option store), so a customcodepoint-widthscan still mis-measure there.switch-clientfrom inside a popup, theunicode-widthdependency sorted, and neutral names in a test fixture.Tests:
rmux-serverpane_delta/popup_delta/live_rendertests (49) pass on Windows 11, including a new test with every failing case from the review;cargo clippy -p rmux-server --all-targets -- -D warningsandcargo fmt --checkpass.🤖 Generated with Claude Code