Skip to content

Add wide character rendering repro app for terminal bug reports#5397

Merged
tig merged 4 commits into
developfrom
tig/wide-char-rendering-repro
May 24, 2026
Merged

Add wide character rendering repro app for terminal bug reports#5397
tig merged 4 commits into
developfrom
tig/wide-char-rendering-repro

Conversation

@tig
Copy link
Copy Markdown
Member

@tig tig commented May 24, 2026

Fixes

  • N/A (new utility, no issue)

Proposed Changes/Todos

Adds a minimal standalone console app (Examples/WideCharRepro/) that demonstrates incorrect wide/fullwidth Unicode character rendering in terminal emulators. This is intended as a repro to attach when filing bugs against terminals that mishandle wide characters (emoji, CJK, fullwidth forms).

The app outputs 5 tests:

  1. Emoji grid with box-drawing separators
  2. CJK Ideograph grid
  3. Mixed narrow + wide content with exact column math
  4. Diverse wide-char grid (emoji, animals, CJK)
  5. Column-alignment verification (X markers at column 20)

If the | separators are not vertically aligned, the terminal has a wcwidth bug.

Also includes:

  • README.md -- explains the problem, how to run, and relevant Unicode standards
  • BUG_REPORT_TEMPLATE.md -- copy-paste template for filing issues against terminals, with a compatibility matrix

Pull Request checklist:

  • I've named my PR in the form of "Fixes #issue. Terse description."
  • My code follows the style guidelines of Terminal.Gui
  • My code follows the Terminal.Gui library design guidelines
  • I ran dotnet test before commit
  • I have made corresponding changes to the API documentation (using /// style comments)
  • My changes generate no new warnings
  • I have checked my code and corrected any poor grammar or misspellings
  • I conducted basic QA to assure all features are working

Minimal standalone .NET console app that demonstrates incorrect wide/fullwidth
Unicode character rendering in terminal emulators. Outputs grids of emoji, CJK,
and mixed-width characters with box-drawing separators that should align
vertically. If they don't, the terminal has a wcwidth bug.

Intended for use in bug reports against terminals that mishandle wide chars.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 178ee955d8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Examples/WideCharRepro/Program.cs
Add Ghostty to the terminal compatibility matrix in BUG_REPORT_TEMPLATE.md
as passing all tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@tig tig force-pushed the tig/wide-char-rendering-repro branch from 0c576be to d118b6c Compare May 24, 2026 20:49
tig and others added 2 commits May 24, 2026 14:50
…ails

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@tig tig marked this pull request as draft May 24, 2026 21:09
@tig tig marked this pull request as ready for review May 24, 2026 21:09
@tig tig requested a review from BDisp May 24, 2026 21:09
@tig tig merged commit 7f38164 into develop May 24, 2026
13 checks passed
@tig tig deleted the tig/wide-char-rendering-repro branch May 24, 2026 21:16
@BDisp
Copy link
Copy Markdown
Collaborator

BDisp commented May 24, 2026

I haven't had the opportunity to review this PR. I'm just asking if the use of ZWJ emojis was carefully considered, as it's also considered a wide character occupying two columns?

@tig
Copy link
Copy Markdown
Member Author

tig commented May 24, 2026

I haven't had the opportunity to review this PR. I'm just asking if the use of ZWJ emojis was carefully considered, as it's also considered a wide character occupying two columns?

sorry, but I needed to merge to move on and since its' just as sample...

I just used codepoints that demonstrated the Github Copilot App terminal bug:

github/app#433

If you think this test app can be improved, that'd be awesome!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants