SuperAPI AI 工具集

refactor-dart-dot-shorthands

编程与开发

查看项目

更新于 10-15 20:32

技能介绍

用途:在上下文类型已经明确的前提下,把 Dart 代码中的 TypeName.memberName 改写为 Dart 3.7+ 的点简写(成员访问简写).memberName,使代码更简洁,尤其适合枚举和静态常量作值使用。

主要能力与用法:

  • 应用简写:将 super.language = Language.c 改写为 super.language = .c。
  • 集合保持原格式:多行列表保留换行与尾随逗号,仅替换成员,如把 Architecture.arm 等改为 <Architecture>[ .arm, ... ] 形式。
  • 赋值与调用:logger.level = Level.INFO 可改为 logger.level = .INFO;hostOS = hostOS ?? OS.current 可改为 hostOS = hostOS ?? .current。

限制:

  • 一次只处理 pkgs/ 下的单个包,不跨包操作。
  • 不使用 .new 作为构造函数简写。
  • 仅当类型从该行即可明确判断时才用简写,需要滚动或查找才能确定类型时不用。
  • 不为了启用简写而给集合添加显式类型参数或给变量添加显式类型。
  • 仅当变量或参数名包含类型名(或很明确的缩写)时使用;不为了简写而重命名公共 API 或大量使用处的变量/参数。
  • 避免在类型推断可能脆弱的复杂上下文(如 switch 中的嵌套元组)使用。
  • 不重复简写:类内已可直接访问的静态成员优先用 member 而非 .member。
  • 每处理一个文件或不超过 3 个文件的小批次后,必须更新 SHORTHAND_PROGRESS.md 进度清单,完成后删除该临时文件。

验证方式:在包目录运行 dart analyze;若属于顶层 workspace,则在项目根运行 dart tool/ci.dart --all --fast;否则在包目录运行 dart test。

适用场景:Dart 3.7+ 代码库中按包逐步清理可简化的枚举/常量引用,并能接受人工逐行判断与进度留痕的团队。关于收费、价格等信息暂未提供。