Skip to content

fix: 修复 resize 回放后的选择与 Find 列坐标 - #108

Closed
JavaZeroo wants to merge 2 commits into
mainfrom
fix/replay-text-coordinates-r29
Closed

JavaZeroo wants to merge 2 commits into
mainfrom
fix/replay-text-coordinates-r29

Conversation

@JavaZeroo

@JavaZeroo JavaZeroo commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

问题与最终行为

resize 回放和后续缓存匹配会把不同列的相同文字当成同一行版本,导致选择和 Find 沿用旧坐标。两条匹配路径现均保留文字起始列:移位使旧选择/命中失效,Find 重扫定位到实际列;尾部未写 padding 仍不影响匹配。

关联 #29,只完成独立坐标修复。ADR-0005、候选说明、FEATURES 和证据索引同步区分回放完成后清空、回放期间清空及尚未验证的尺寸语义。

验证

  • 原始反例失败 → 修复通过;单独恢复缓存比较旧逻辑仍失败。
  • 12 个公开接口组合覆盖左右移位/不变对照、回放中/回放后、整段/逐字节;旧 861B 重放及其余候选核心测试继续执行。
  • Windows 11 x64,候选 termforge.4 + 系统 ConPTY,完整 CTest 48/49。Vim 场景在 stage50 因测试 PATH 缺少 vim 失败,其余 48 项通过。
  • 同源码/二进制只补已有 Vim 的进程 PATH,独立 TUI 套件 1/1 通过(6 用例各两轮)。保留首次失败,不合并成一次全绿。
  • Standards 与 Spec 独立审查。固定源码、文件/二进制哈希和逐测试结果见 验证记录。

性能影响(如适用)

没有运行性能测量;测试耗时仅为诊断,不构成 WindTerm 等价或容差验收。

来源与限制

输入与修复为独立编写,不使用私有资源或反编译代码。没有修改 Rust 上游、FFI、默认核心或实验官方后端。#29 的冻结尺寸、历史清空、真实 child 尺寸及原版对照仍未完成,正式核心选择仍待用户确认。

此提交的 hosted CI

四条运行均为 attempt1,没有重新运行取绿。PR 保持 Draft,默认构建失败不由另外三条成功覆盖。

@JavaZeroo

Copy link
Copy Markdown
Owner Author

按 #29 路线裁决(选项 C)关闭:不采纳本栈的行模型路线。

依据:main 上 �xperiments/core/history_view.hpp 为 80 行、基于 #169 的 owned id / sealed rows;本栈是 268 行的 �iew_mapping/Piece/DisplayRow 路线。且 main 的 ext_document.hpp(96 行)比本栈的(81 行)更新:多了 �poch、精确 index_of、order_revision/compare,本栈的 �efore() 按 line_id 排序在 main 的语义下不成立。

其中可叠加的部分已分别落地:

其余提交实现的是被取代的行模型,不再是候选。分支保留供参考。

@JavaZeroo JavaZeroo closed this Oct 31, 2026
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.

1 participant