Files
ElyOffice/tasks/reviews/C14.4-r1.md
T

3.2 KiB
Raw Blame History

FAIL

apps/ely-mark/web/src/visual.js:116 — 搜索行定位只把光标放到所属块的起点,丢失块内行位置(MARK-10)。复现:b.md 为 # Other\n\nFirst line.\nwords too\n,搜索 words,打开第 4 行结果,键入 Q 后保存。真窗口探针得到 # Other\n\nQFirst line.\nwords too\n,应改动的命中行保持原样。原 mark-places.sh 通过,把其样本改为这个多行段落后,现有保存断言报 FAIL。修复方向:把命中行的源码偏移映射到块内对应选区;覆盖多行段落、列表与代码块。

apps/ely-mark/web/src/main.js:85 — 可视及预览模式剥离 YAML front matter 后,直接沿用正文编辑器的 line 方法,传入的全文行号缺少偏移换算(MARK-10)。复现:文档为 ---\ntitle: Test\n---\n# Heading\n\nneedle here.\n\n# Other\n\nother paragraph.\n,打开第 6 行 needle 的搜索结果。真实 CEF 的 ely.reveal({line:6}) 把选区放到 other paragraph.;第 4 行 Heading 的定位也落到 Other。修复方向:在全文与正文之间换算行号,并处理位于 front matter 内的命中。

apps/ely-mark/web/src/visual.js:94 — 大纲只读取 heading 节点;preserve.js:72 将需要保留写法的标题替换成 ely_raw 后,其标题语义丢失(MARK-05)。复现:打开合法 CommonMark # Heading #\n\nBody.\n。真实 CEF 显示 visual、fallback false,但发送的 outline items 为 [],按标题跳转回报 nothing at {"heading":0}。修复方向:保留原始标题信息及其与编辑节点的位置对应,使原文保留的标题同样进入大纲并可跳转。

apps/ely-mark/src/side.rs:45 — 观察 Desk 时只重绘,当前文件搜索结果没有随活跃标签改变,也没有按标签身份作废(MARK-10)。复现:在 b.md 的 This file 范围搜索 words,切到 a.md;真窗口 AX 仍显示 b.md 的 Qwords too,并继续标示 This file。激活该结果会打开旧标签。修复方向:活跃标签变化时重新执行当前文件查询,后台回包同时校验查询代次与所属标签。

apps/ely-mark/src/side.rs:120 — 文件读取或解码失败后仅写日志并 continue,随后把其余命中作为正常搜索结果展示,用户看不到搜索范围有缺漏(agents.md 规则 2、MARK-10)。复现:打开含可读文件及 bad.md 的文件夹,令 bad.md 内容为 words 并 chmod 000,再搜索 words。真窗口日志出现 Permission denied,AX 只显示其余文件的命中,缺少失败提示;非 UTF-8 文件也走同一条路径。修复方向:将失败文件与原因返回界面,经现有错误反馈显示本次搜索的失败情况。

apps/ely-mark/src/desk.rs:73 — 最近列表按标签 id 只登记一次,同一会话重命名或另存后的新路径无法更新记录(MARK-05)。复现:mark-modes.sh 真窗口把 doc.md 重命名为 moved.md 并成功继续保存;读取 recent.json,仍只有 doc.md,moved.md 缺失。重启后的最近项因此指向已消失的文件。修复方向:按会话当前路径更新最近项,改名成功时迁移旧路径。独立构建后 mark-places.sh、mark-modes.sh、mark-session.sh、mark-content.sh 通过;ely-mark 8 项、ely-files 108 项、ely-tree 110 项单测通过,这些现有门缺少上述失败场景。