用途:用于发现 Rust 代码中的重复或近似重复,尤其适合在准备编写可能已存在的工具函数、复制粘贴修改函数、新增可能重叠的枚举或结构体、或出现相似插件设置与 Bevy 系统时使用。
主要能力:扫描源码树报告重复代码对;通过 --cross-file 检测跨文件重复;支持 -t/--threshold、--min-lines、--skip-test、--no-size-penalty 等参数调节灵敏度与范围。
使用方式:先搜索再编写,最后检查。安装:cargo install similarity-rs;扫描:similarity-rs ./src;跨文件:similarity-rs --cross-file ./src;调整:similarity-rs -t 0.85 -m 5 --cross-file --skip-test ./src。也可配合 rg 和 cargo doc 做编写前检索。
适用场景:提交前检查、清理冲刺、配置 pre-commit 钩子或 GitHub Actions 门禁。
限制:该工具标记为 Beta,上游 README 称未经生产测试,结果为参考信号,需人工核验;--cross-file 默认关闭;测试文件常有意结构相似,CI 中建议加 --skip-test;阈值需按项目调整,默认 0.85,清理期可用 0.75–0.80,生产门禁可用 0.90–0.95;该技能没有测试代码片段,因为它是纯 CLI 工具,无库 API。部分参考文档内容未在资料中提供。