#5804·dioxus

`dx fmt` 在每次运行时都会增加深度嵌套闭包内多行原始字符串常量的缩进(非同态)

作者: Dicklessgreat创建于 2026年9月2日更新于 2026年9月2日
标签bug

问题描述 dx fmt 在深层嵌套块(例如传递给 spawn 的闭包,在 match 分支中,在 rsx! 元素处理器中)内出现多行原始字符串(r#"..."#)时,不是 idempotent 的。重复地对已格式化文件运行 dx fmt 会不断增加字符串内容的缩进,而不是收敛到稳定的输出。由于原始字符串的换行之间的内容是真实的字符串数据(这种模式通常用于构建传递给 document::eval 的 JS 片段),这也会默默地损坏字符串的值,而不仅仅是其屏幕上的缩进。我们注意到这一点,因为我们团队的 Claude Code PostToolUse 钩子在每次编辑后都会运行 dx fmt -f <file>。对同一个文件进行多次编辑后,某个特定的原始字符串会增长到 1000 多个字符的前缀空格,直到我们注意到这一点为止。

内容来源: DioxusLabs/dioxus