fix(windows): disable font ligatures in run output (#编号) - #959
Conversation
…delity Geist Mono ships programming ligatures, so separator banners like '=====' rendered as solid double lines and '=>'/'!=' folded into single glyphs, which no longer matches the bytes the process actually emitted. Log viewers should stay literal: set font-variant-ligatures:none on the run output so every character is rendered individually. Copied text was always correct; only the display changed.
|
矩阵没有修复,修完感觉问题应该不大,改动挺小的 |
|
强迫症表示舒服了。 |
1lck
left a comment
There was a problem hiding this comment.
Lithe Review
结论:样式实现未发现需要阻塞合并的功能问题;有 1 个 P2 规范遗漏,且当前功能矩阵 CI 明确失败。
范围: preview ← PR #959,共同基点 130c39f485983d9691e017b9c346747dfb58845d 至 a0560dc97d768043764ba97c3da18b85a97ce998,1 文件 2 行。
Findings / Suggestions
P2:本次用户可见的运行输出显示修改没有同步功能矩阵。请更新 shared/platform-feature-matrix.json 中相关运行/Maven 输出能力的 Windows 证据与验收步骤,重新生成两个文档视图;不要用只适用于无用户可见变化重构的 matrix-exempt 绕过。详见行内意见。
Scope Check
已检查 RunOutputText 的有输出与空态两个 pre、renderRunOutput 的 span 生成,以及 Run 和 Maven 面板调用方。禁用连字只改变文字排印,保留原始文本、复制选择、ANSI 样式、换行与滚动;两个分支都覆盖,未发现新增功能回归。未找到可验证的关联 Issue,标题中的“#编号”仍是占位符,可顺手清理。
Verification
- 本地 diff、程序包只读、Windows 边界及矩阵生成内容一致性通过;矩阵变更门禁明确失败,输出缺少 shared/platform-feature-matrix.json。
- 已读 当前 head 的失败日志,与本地失败原因一致;Windows 前端 CI 已通过。
- 作者描述中的 188 项测试与 Windows 目测是作者提供的证据,本轮未重新执行。
- 本次未运行完整构建、测试或原生 UI;没有生成新的编译缓存。代码缺陷依据当前 head 的调用链分析,未声称已在 Windows/macOS 实机复现。
建议补齐矩阵后重跑检查;本 review 使用 COMMENT,P2 不升级为 P1。
| ref={preRef} | ||
| className={cn( | ||
| "cursor-text font-mono text-[12px] text-foreground select-text *:select-text", | ||
| "cursor-text font-mono text-[12px] text-foreground select-text *:select-text [font-variant-ligatures:none]", |
There was a problem hiding this comment.
[P2] 同步记录运行输出禁用连字的用户可见行为
这个修改让 ====、=>、!= 等输出按原字符显示,Run 和 Maven 面板都会受影响,属于用户可见行为变化。但整个 PR 只有本文件两行,缺少 develop-lithe 要求的 shared/platform-feature-matrix.json 更新;当前 head 的矩阵 CI 已因此失败,本地变更门禁也复现相同错误。
请在相关运行/Maven 输出能力条目补充 Windows 实现证据及逐字符显示的验收步骤,运行 node scripts/generate-platform-feature-matrix.mjs 并提交生成视图,再运行矩阵变更和一致性检查。该改动并非无用户可见变化的重构,不适用 matrix-exempt。样式代码本身未发现明确功能问题。
问题
Geist Mono 默认开启编程连字:

====分隔线渲染成实线、=>/!=折叠为单字形,显示与进程实际输出不符(复制文本一直正确,纯显示问题)。改动
run-output-text.tsx的两个<pre>增加[font-variant-ligatures:none](1 文件 2 行),Maven 面板复用同组件一并生效。验证
====恢复逐个等号、==>/=>/!=/>=逐字符显示,与复制文本一致