SuperAPI AI 工具集

motoko-core-code-improvements

编程与开发

查看项目

更新于 10-16 01:50

技能介绍

用途:该技能用于在 mo:core 项目(或完成 mo:core 迁移后)进行可选、模块化的清理与风格改进。适用前提是项目已能在 mo:core 上编译,且测试处于通过状态,目标是在不改变行为的前提下提升可读性与一致性。

主要能力:属于保持语义的机械化改进,包括按三类聚合导入并按文件字母排序(mo:core/...、来自 mops 或第三方来源的其他 mo:*/...、本地项目模块);在 mo:core 支持处优先使用点记法;清理真正未使用的导入行(需兼顾点记法产生的隐式依赖);移除单表达式函数中冗余的 return;在合适时将常量 ASCII 字符串直接赋值给 Blob。

使用方式:建议按顺序逐类执行改进:先去单表达式函数 return,再切换点记法,补充点记法所需的 mo:core 导入,清理未使用导入,缩短本地同级导入路径,聚合并排序导入,最后处理常量字符串到 Blob 的直接赋值。每类改动独立运行并在每次提交后隔离差异,优先采用可脚本化、可审查的改动;每类改动后重新构建,如有测试则运行测试。验收要求包括不引入编译错误或警告、不改变行为与公共接口、无真正未使用导入、点记法在直接支持处一致使用,并可用命令 find src -type f -name "*.mo" -print0 | xargs -0 -n1 $(mops toolchain bin moc) --check $(mops sources) 验证。

限制与注意:去 return 仅适用于函数体仅含单条 return 语句的情况;多语句体、包含 try/label/switch/await 导致控制流不同的函数、含多个 return(如 switch 分支中的提前返回)的函数均不得移除 return。若函数仅有一个提前/条件 return 而后有兜底表达式,则应给兜底表达式补显式 return,而非删除提前 return。return switch 在所有分支正常产生值时是推荐风格;若某分支含 Runtime.trap 或 throw 这类真实退出的语句,则应将 return 拉入产生值的分支。不可达的 trap 不属于等价返回。脚本替换需基于字符级花括号深度解析,跳过字符串与注释,遇到嵌套 func 应跳过其函数体;简单按行计数不足。

适用场景:Motoko 项目在迁移到 mo:core 后的代码整理、导入规范统一、风格收敛等。

暂未提供:具体版本要求、支持的平台范围、收费信息等未在资料中明确说明。