feat: improve Unicode width calculation for emoji and CJK (v2)#576
Closed
kolkov wants to merge 1 commit intocharmbracelet:proposal-v2-expfrom
Closed
feat: improve Unicode width calculation for emoji and CJK (v2)#576kolkov wants to merge 1 commit intocharmbracelet:proposal-v2-expfrom
kolkov wants to merge 1 commit intocharmbracelet:proposal-v2-expfrom
Conversation
Port of the Unicode width improvements to v2 branch, addressing Korean character rendering issues reported in opencode project (anomalyco/opencode#2013). Changes: - Add comprehensive Korean/Japanese character detection via checkAsianCharacter() - Korean Hangul (unicode.Hangul) + Jamo ranges - Japanese Hiragana & Katakana - Enclosed CJK Letters (0x3200-0x32FF) - Implement emoji-specific width calculation fallback using go-runewidth - Detect emoji ranges (Emoticons, Symbols, Dingbats, etc.) - Use runewidth for accurate emoji width when detected - ansi.StringWidth already handles CJK correctly - Add comprehensive Unicode width tests - Test emoji width calculation - Test CJK character detection - Test Korean/Japanese character identification This should help resolve Korean character disappearing issues in terminal emulators like WezTerm and Ghostty. Related: charmbracelet#563, anomalyco/opencode#2013 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
|
@meowgorithm could you review this PR? |
Member
|
Hi. Thanks for the contribution. All the tests in this PR already pass on I'm going to close this one, but if there's something we're missing please let us know (ideally, with some reproducible code that illustrates the issue). |
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.
Port of the Unicode width improvements to v2 branch, addressing Korean character rendering issues reported in opencode project (anomalyco/opencode#2013).
Changes:
Add comprehensive Korean/Japanese character detection via checkAsianCharacter()
Implement emoji-specific width calculation fallback using go-runewidth
Add comprehensive Unicode width tests
This should help resolve Korean character disappearing issues in terminal emulators like WezTerm and Ghostty.
Related: #563, anomalyco/opencode#2013
CONTRIBUTING.md.