1.2 KiB
1.2 KiB
FAIL
crates/ely-lok/src/view.rs:168 — [P1] 滚动边界在文档缩短、缩放减小和视口扩大后失效,违反 LOK-04。apply_batch 将滚动位置夹到文档宽高,正确上限应扣除当前视口对应的文档尺寸;set_zoom(第 95 行)与 prepare(第 274 行)改变这一上限后也保留原位置。固定补丁引擎与实际 GPUI 视图方法实测:600 逻辑像素高的视口,80 次 Return 将文档高度从 16408 增至 32532 twips,滚到底部为 23532;SelectAll/Delete 后文档恢复 16408,滚动位置却变为 16408,正确上限为 7408。此时页面裁剪区域的底边落在视口顶部,正文完全消失,直到再次滚动。同样,200% 缩放下滚到底部后改为 25%,滚动位置仍为 11908,正确上限为 0;将视口高度从 300 扩至 1200 逻辑像素也复现 11908 对 0。三项临时回归断言均失败,现有 22 项测试全部通过。修复方向:在文档尺寸、缩放及视口尺寸变化时,按同一坐标转换重新计算水平与垂直滚动上限并夹定当前位置,确保图块位置与页面裁剪使用更新后的值;补充删页、缩小缩放及扩大窗口后的滚动边界回归。