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

14 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
- `reference/Ely-GPUI-Components/src/documents/document/tables.rs:83`(ce4a1e9):列位置取自原始行的全部单元格,但随后网格被裁成表头宽度,合法 GFM 表格的多余单元格会让列操作越界 panic。复现:源码为 `| A | B |\n| - | - |\n| 1 | 2 | 3 |\n`,插入点放在 `3` 上,执行删除列,报 `removal index (is 2) should be < len (is 2)`。应在修改前核对插入点对应的有效列,对不可操作的位置明确拒绝,并覆盖超出表头宽度的行。失败探针:`probe_extra_table_cell_does_not_crash`,见 `.work/C14.9-r1/probes-confirm.log`。
- `reference/Ely-GPUI-Components/src/documents/document/tables.rs:90`(ce4a1e9):嵌套表格统一用无容器前缀的文本重写,破坏外层引用结构。复现:对 `> | A | B |\n> | - | - |\n> | 1 | 2 |\n` 的数据行执行下方插入行,结果只有首行保留 `> `,分隔行与数据行全部脱离引用,原表格不再按原结构解析,违反 §14.3 的内容保留要求。应保留引用或列表容器的逐行前缀;无法保留的结构须明确拒绝并提示用源码编辑。失败探针:`probe_nested_table_stays_quoted`,见 `.work/C14.9-r1/probes-confirm.log`。
- `apps/ely-mark/src/tools.rs:30`:表格动作不检查模式,直接修改只读预览中的文档。复现:打开 `Intro\n`,切到预览,执行“表格›插入表格”,仍停在预览模式,正文却已加入整个表格,违反 MARK-02 的只读预览要求。应在实际修改入口落实模式限制,覆盖表格及替换等修改动作;不能在保持只读预览状态时写入正文。失败探针:`probe_preview_table_is_read_only`,见 `.work/C14.9-r1/probes-confirm.log`。
- `apps/ely-mark/src/finding.rs:147`:逐次替换后沿用旧匹配序号,不能可靠地选中下一处。复现:源码 `a a\n`,查找 `a`,选中第一处并替换为 `aa`;结果为 `aa a\n`,选区仍为 `0..1`,而不是下一原匹配的 `3..4`,反复替换会不断扩张第一处。另外,替换 `a b a\n` 的最后一处为 `x` 后,当前项变成 `None`,没有按导航的循环规则转到第一处。应依据替换后的字节位置重新寻找下一处并处理回绕,补实际选区与连续替换回归。失败探针:`probe_replace_matching_text_advances`、`probe_replace_last_wraps`,见 `.work/C14.9-r1/probes-confirm.log`。
- `reference/Ely-GPUI-Components/src/documents/document/finding.rs:28`(ce4a1e9):可视模式在解析尚未跟上文本时直接丢弃显示匹配的请求。应用在替换后立即调用它,此时编辑器的 Changed 回调尚未完成解析,正常的短文档也会命中此分支。复现:可视模式查找 `a b a\n` 的第一处 `a`,替换为 `x`;计数更新了,但下一处没有打开或选中,键入 `z` 后正文仍为 `x b a\n`,而不是 `x b z\n`。应将匹配显示请求保留到对应文本解析完成再落实。失败探针 `probe_visual_replacement_selects_next`;对照探针在解析后再次调用 `show_match` 即通过,见 `.work/C14.9-r1/probes-confirm.log`。
- `reference/Ely-GPUI-Components/src/documents/document/lists.rs:125`(ce4a1e9;块内同见 159):列表续写只检查当前行的字符,不检查 Markdown 语法上下文,代码块中的普通代码也被当作列表。复现:源码为一个 text 围栏,内容为 `- a`;在该行末回车,实际插入 `\n- `,而正常回车应只换行。代码内容因此被额外改写,违反 MARK-06 与 §14.3;可视模式打开代码块后也走同一判定。应仅对实际列表项续写,排除围栏代码等原文区域,并覆盖源码与打开块两条输入路径。失败探针:`probe_code_is_not_a_list`,见 `.work/C14.9-r1/probes-confirm.log`。