Files
ElyOffice/tasks/reviews/R4.3-r2.md
T

3.2 KiB
Raw Blame History

FAIL

  • ../Ely-GPUI-Components/src/documents/document/place.rs:202 — [P2] 同名标题的出现序号不能标识原来按下的标题。可视模式打开 before\n\n[toc]\n\n# A\n\ntext\n\n## B\n,将首块改成 ## B,重绘后 Ctrl+按原目录中的 B:写回后实际跳到新 B(第 1 行),而不是按下的原 B(第 9 行)。Split 模式在等待解析时插入同名标题也会跳错。两个 GPUI 探针均失败,且按下前、按下与松开之间均有绘制;普通写回对照通过。应通过实际编辑映射原目标的位置或身份,不能仅按标题文字、层级与旧序号重选;补插入、删除同名标题的回归测试。证据:.work/R4.3-r2-review/toc-tests.log、toc-probe-source.log。

  • ../Ely-GPUI-Components/src/documents/tree/blocks.rs:178 — [P2] 新增的空白结算循环每次遍历全部未关闭元素,重新引入平方复杂度。输入为 <div> 加重复 N 次的 <div>a 再加 </div>;直接编入实际解析模块的 release 探针中,N=8000、16000、32000、64000 分别约 10、43、217、989 ms;980011 字节的输入耗时 7.07 秒,父提交同输入仅 34 ms。新增增长测试没有带文字、空白与不断增长的栈,因而仍通过。应只更新当前位置确实需要移位的元素,避免每次空白结算扫描全栈,并用此类输入检验增长率。证据:.work/R4.3-r2-review/growth.log、base-growth.log、growth-1mb.log、base-growth-1mb.log。

  • ../Ely-GPUI-Components/src/documents/tree/mod.rs:159 — [P2] 被过滤标签的原文进入 push_text 后仍会替换表情短码,违反本轮“照原文显示”的规则。a <script title=":smile:">x</script> c 在 GitHub API 中保留 :smile:,本实现却显示 <script title="😄">;HTML 块里的 run.words(written) 也有同一问题。应将过滤标签作为不进行表情替换的字面文本输出,补行内与块内属性值的回归测试。GitHub 对照与失败断言见 .work/R4.3-r2-review/github-probes-extra.log、parser-tests.log。

  • ../Ely-GPUI-Components/src/documents/tree/blocks.rs:119 — [P2] 标签过滤使用被截短的名称,误把其他标签当成九种过滤标签。html::tag 遇到冒号或感叹号便停止读取名称,所以 <div>a<script:custom>x</script:custom>b<script!>y</script!>c</div> 实际显示这些标签原文;GitHub API 输出为 <div>axbyc</div>,符合其余标签只显示文字的要求。应按完整标签名及 GFM 的合法名称边界判断是否过滤,不能接受名称前缀;补这些反例。证据:.work/R4.3-r2-review/github-probes.log、parser-tests.log。

  • ../Ely-GPUI-Components/src/documents/tree/blocks.rs:125 — [P2] 块开始标签只压栈,没有执行 HTML 的隐式闭合,内部格式仍会越出容器。<ul><li><mark>x<li>y</ul>z 将 x\ny 都标记为 Mark,GitHub 只标记 x;<div><p><mark>x<div>y</div>z</div> 则把 x\ny\nz 全部标记,GitHub 同样只标记 x。kbd 也会跨过新的 p。应在打开 li、p 或会结束 p 的块元素时,先按 HTML 规则结束前一容器及其内部元素,保留必要的格式重开规则,并补隐式闭合测试。GitHub 输出与样式范围断言见 .work/R4.3-r2-review/github-probes.log、parser-tests.log。