问题描述
在 BitFun 对话内展开 Markdown 文件预览时,diff 视图中的文本行出现垂直重叠,导致内容难以阅读。
复现步骤
- 在对话中让 AI 写入或修改一个 Markdown 文件
- 点击展开文件预览(diff 视图)
- 观察文本行,特别是中英文混排的行
实际表现
相邻行的文本在垂直方向上重叠,例如:
- 第 4 行:
content_settings 并清空 permission_actions 历史 和 Open References 重叠
- 第 12 行:
## 关键文件 和 permission_actions 记录拒绝操作...` 重叠
期望表现
文本行应该清晰分离,不出现重叠。
环境信息
- BitFun 版本: 0.2.10
- 操作系统: Windows 11
- 显示缩放: 150% (144 DPI)
- WebView2 版本: Edge WebView2 (随系统更新)
根因分析
这是 Tauri 2 + WebView2 的已知渲染缺陷,在以下条件下容易触发:
-
非整数缩放比例:150% 缩放是 WebView2 文本渲染 bug 的重灾区。100%、200% 这种整数倍缩放像素对齐完美,而 125%、150% 会出现亚像素渲染问题。
-
等宽字体 + 中英文混排:中文字体和英文字体的行高(line-height)不一致,WebView2 的行高计算没有正确取最大值。
-
diff 视图的特殊布局:BitFun 的 diff 视图可能用了 white-space: pre 或类似的 CSS,绕过了正常的文本布局引擎。
为什么只在对话内出现?
BitFun 的对话视图和编辑器用的是不同的渲染路径:
- 编辑器:可能用了 Monaco Editor 或 CodeMirror,有自己的文本渲染引擎
- 对话内的 diff 预览:直接用 WebView2 渲染 HTML/CSS,依赖浏览器引擎的文本布局
临时绕过方案
用户侧可以尝试:
- 调整显示缩放到 200%(整数倍),文本重叠问题基本消失
- 切换代码字体为纯英文字体(如
Fira Code、JetBrains Mono),避免中英文字体行高冲突
建议的修复方案
在 BitFun 的 CSS 里强制行高补偿,例如:
.diff-view, .markdown-preview {
line-height: 1.8 !important; /* 比默认 1.5 更大,给中英文混排留余量 */
}
或者在 diff 视图的容器上添加:
.diff-line {
min-height: 1.6em;
line-height: 1.6;
}
截图
相关 Issue
这个问题与 Tauri 2 + WebView2 的文本渲染相关,可能影响所有使用非整数缩放的用户。
备注:这个问题不影响文件内容的正确性,只是预览渲染有瑕疵。文件本身在磁盘上是完好的。
问题描述
在 BitFun 对话内展开 Markdown 文件预览时,diff 视图中的文本行出现垂直重叠,导致内容难以阅读。
复现步骤
实际表现
相邻行的文本在垂直方向上重叠,例如:
content_settings 并清空 permission_actions 历史和Open References重叠## 关键文件和permission_actions记录拒绝操作...` 重叠期望表现
文本行应该清晰分离,不出现重叠。
环境信息
根因分析
这是 Tauri 2 + WebView2 的已知渲染缺陷,在以下条件下容易触发:
非整数缩放比例:150% 缩放是 WebView2 文本渲染 bug 的重灾区。100%、200% 这种整数倍缩放像素对齐完美,而 125%、150% 会出现亚像素渲染问题。
等宽字体 + 中英文混排:中文字体和英文字体的行高(line-height)不一致,WebView2 的行高计算没有正确取最大值。
diff 视图的特殊布局:BitFun 的 diff 视图可能用了
white-space: pre或类似的 CSS,绕过了正常的文本布局引擎。为什么只在对话内出现?
BitFun 的对话视图和编辑器用的是不同的渲染路径:
临时绕过方案
用户侧可以尝试:
Fira Code、JetBrains Mono),避免中英文字体行高冲突建议的修复方案
在 BitFun 的 CSS 里强制行高补偿,例如:
或者在 diff 视图的容器上添加:
截图
相关 Issue
这个问题与 Tauri 2 + WebView2 的文本渲染相关,可能影响所有使用非整数缩放的用户。
备注:这个问题不影响文件内容的正确性,只是预览渲染有瑕疵。文件本身在磁盘上是完好的。