SuperAPI AI 工具集

ameba-custom-rules

通用与其它

查看项目

更新于 10-16 03:39

技能介绍

该资料介绍如何为 Crystal 代码分析工具 Ameba 编写自定义 lint 规则,以强制项目特定的代码质量标准、发现领域相关代码坏味道,并扩展 Ameba 内置能力。每条规则继承 Ameba::Rule::Base,使用 module Ameba::Rule::Custom 命名空间,包含 properties 块(定义描述与配置项)、MSG 消息常量、test 入口方法以及针对具体 AST 节点类型重载的 test 方法。规则通过继承自动注册,在 .ameba.yml 中按 Custom/<规则名> 启用并配置 Enabled、Severity 等选项,Ameba 应作为开发依赖以避免版本冲突。资料给出多类示例:检查公开类是否有文档注释、禁止生产代码中的 sleep 调用、服务类命名后缀、危险数据库方法(delete_all、destroy_all、update_all)无参数时告警、HTTP 调用需包裹异常处理、方法复杂度上限、文档需含示例等。AST 遍历部分列出 ClassDef、Def、Call、Assign、If、While 等常见节点可访问的属性,并给出跟踪遍历状态、先收集再分析、父子关系访问等模式。问题上报通过 issue_for 完成,支持插值与自定义位置,Severity 可设为 Error、Warning、Convention。测试使用 Spec,创建 Source.new 并检查 source.issues 数量与内容,也可定义辅助方法 expect_issue、expect_no_issue。打包方面提供 shard.yml 配置,可作为 shard 依赖或 vendored 规则分发。资料未提供具体的安装运行命令之外的完整发布流程与收费信息。