SuperAPI AI 工具集

dart-cognitive-complexity

通用与其它

查看项目

更新于 10-15 23:45

技能介绍

用途:分析 Dart 与 Flutter 代码的可维护性、评估函数可读性,并在代码审查中修复高认知复杂度问题。认知复杂度衡量人的理解摩擦,而非简单分支计数。

主要能力:提供 cognitive_complexity CLI,支持按文件/目录定向分析、基于 git diff 的增量分析(--git-diff、--fail-threshold、--fail-on-increase)以及整项目自动发现。--verbose 输出分支、嵌套、布尔运算、最大深度等细分。配套子命令包括 shallow(单调用者辅助函数审计)、data_flow(语句级数据流分析)、file_split(大文件拆分规划)和 api_summary(公共 API 基线)。

阈值:生产逻辑函数目标 ≤15(8–15 为目标区间,非 0),超过 15 需架构重构;测试方法 ≤40;逻辑类 ≤150 非注释行,源文件 ≤400 行;Flutter build 方法不套用 150 行上限,改为控件树嵌套不超过 5 层。

使用方式:需 Dart SDK 3.12.0+,用 dart --version 验证。示例:dart run cognitive_complexity@^2.0.1 --threshold 15 lib/src/auth/;增量:dart run cognitive_complexity@^2.0.1 --git-diff origin/main --fail-threshold 15 --fail-on-increase;CLI 项目需显式传入 lib/ bin/。

流程与限制:检测到超阈值时先做只读审计并生成 complexity_triage_report.md,再经用户确认才改代码;无超阈值则报告无需处理。重构优先就地扁平化(switch 表达式、卫语句反转),再考虑提取纯顶层/静态辅助函数,禁止单次使用的有状态辅助类、回调蹦床、.catchError 指标规避、多趟循环拆分等。shallow 与 file_split 结果仅为建议,不是 CI 门禁。具体收费、平台与效果资料暂未提供。