Files
ElyOffice/tasks/reviews/R2.12-r3.md
T

3.9 KiB
Raw Blame History

FAIL

../Ely-GPUI-Components/src/forms/syntax.rs:15 — 语言词表仍有跨语言混用,上一轮第二项的根因修复仍有遗漏。Python 的 assert ready and True 与 TOML 的 return = 42 已按预期着色;Rust 的合法代码 let from = 42; 却把普通变量 from 着为 keyword,Ruby 的 def hello; puts true; end 把 def 着为 variable(145 行 HASH 沿用 C_LIKE,且新表删掉了原表中的 def)。rustc 与 Ruby 均成功执行这些代码,定向探针记录实际 HighlightStyle,原生窗口两种布局均确认 Rust 的错误颜色。证据:/tmp/R2.12-r3-language.log、/tmp/R2.12-r3-parser.log、/tmp/R2.12-r3-native.log。修复方向:按实际语言选择关键字表,覆盖普通同名变量与 Ruby 定义关键字的颜色回归。

../Ely-GPUI-Components/src/forms/syntax.rs:164 — 新扩展名表遗漏了上一版已有的 Haskell 与 Erlang 注释映射,211 行将它们退回 C_LIKE,造成着色回归。复现:main.hs 的 -- return 42、main.erl 的 % return 42 原本整行是 comment,现在将 return 着为 keyword、42 着为 number。原生 DiffViewer 与相同文本的正确注释着色对照,行内/并排分别相差 839/1678、933/1866 个文本像素。证据:/tmp/R2.12-r3-language.log、/tmp/R2.12-r3-render.log。修复方向:迁移时保留原有语言的注释规则,并增加覆盖被迁移扩展名的实际颜色断言。

../Ely-GPUI-Components/src/forms/syntax.rs:102 — TOML 被设置为仅在空白后识别注释,198 行的 CMakeLists.txt 又被归入具有同一限制的 SHELL,合法的紧接代码注释被当作代码。上一轮 # return 42 的 CMake 文件名复现已通过,但 CMakeLists.txt 中的 set(x 1)# return 42 与 config.toml 中的 answer = 42# return 99 仍分别把注释里的 return、数字着为代码;cmake 成功执行,tomllib 成功解析出 answer=42。相同 CMake 行在 build.cmake 中着色正确;CMake 主文件与它在行内/并排相差 902/1804 个文本像素,TOML 注释与正确注释对照相差 922/1844 个文本像素。证据:/tmp/R2.12-r3-parser.log、/tmp/R2.12-r3-language.log、/tmp/R2.12-r3-render.log。修复方向:分别配置 TOML 与 CMake 的注释起始条件,并覆盖代码后紧接 # 的场景。

../Ely-GPUI-Components/src/forms/code.rs:82 — Shell 的注释边界只认可行首与空白,遗漏控制操作符结束词的情况。上一轮 echo foo#bar 42 的词中 # 已修复;有效 Shell 代码 echo x;# return 42 在 Bash 中只输出 x,DiffViewer 却将注释中的 return 着为 keyword、42 着为 number。两种原生布局均复现,与正确注释颜色对照的文本像素差为 910/1820。证据:/tmp/R2.12-r3-parser.log、/tmp/R2.12-r3-language.log、/tmp/R2.12-r3-render.log。修复方向:依 Shell 的词法边界识别注释起点,覆盖分号等操作符后的注释,同时保留词中 # 的回归。

../Ely-GPUI-Components/src/git/rows.rs:201 — 新回归只读取构造器保存的 syntax,上一轮第四项要求的实际渲染接线覆盖仍然缺失。复现:在隔离副本中将 viewer.rs:202 的 let syntax = self.syntax; 改成 let syntax = crate::forms::syntax_of("forced.rs");,执行 cargo test --lib --features test-support --offline --locked,1727 项测试仍全部通过;原生 DiffViewer 的 Markdown 在行内、并排重新出现代码颜色,文本区域分别改变 1073、1780 个像素,Python/TOML 注释也被错误着色。证据:/tmp/R2.12-r3-mutation-test.log、/tmp/R2.12-r3-mutation-native.log、/tmp/R2.12-r3-render.log。基线 ElyTree 检查、构建与 111 项测试、组件库 1727 项测试通过;探针副本与独立 target 已删除,原始组件库与本次审查范围源码散列一致(/tmp/R2.12-r3-cleanup.log)。修复方向:增加经过 DiffViewer 两种布局的文本颜色断言,让渲染接收错误语言类型的突变触发失败。