feat(terminal): add Unicode precision — CJK ambiguous width, emoji ZWJ, ligatures

- Add grapheme_width() with emoji ZWJ sequence detection (width 2)
  and comprehensive is_cjk_ambiguous() per UAX #11
- Add TerminalFontOptions::{ligatures, cjk_ambiguous_wide} options
- Add is_emoji_presentation() covering major emoji Unicode blocks
- Update default font stack with CJK and emoji fallback families
- Add --terminal-font-ligatures CSS variable via font-variant-ligatures
- Add 8 unit tests for grapheme_width covering ASCII, CJK, emoji,
  ZWJ sequences, combining chars, and variation selectors
- Mark P8 complete in roadmap
This commit is contained in:
zhangheng
2026-06-25 11:37:17 +08:00
parent 5bca11083f
commit 3603321dea
5 changed files with 354 additions and 11 deletions

View File

@@ -638,6 +638,7 @@
);
font-size: var(--terminal-font-size, 13px);
line-height: var(--terminal-line-height, 18px);
font-variant-ligatures: var(--terminal-font-ligatures, none);
white-space: pre;
letter-spacing: 0;
scrollbar-gutter: stable;
@@ -689,6 +690,7 @@
);
font-size: var(--terminal-font-size, 13px);
line-height: var(--terminal-line-height, 18px);
font-variant-ligatures: var(--terminal-font-ligatures, none);
white-space: pre-wrap;
word-break: break-word;
}