界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
数据与研究 · SKILL.md

dart-tooling

dart-tooling

【数据与研究】Dart static analysis, linting, formatting, and code-generation standards. Use only for analysis_options.yaml, build_runner, dart format, DCM, lefthook, or analyze/format CI failures; defer Dart language, null-safety, Flutter tests, and generic CI questions.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: dart-tooling description: Dart static analysis, linting, formatting, and code-generation standards. Use only for analysis_options.yaml, build_runner, dart format, DCM, lefthook, or analyze/format CI failures; defer Dart language, null-safety, Flutter tests, and generic CI questions. metadata: triggers: files: - 'analysis_options.yaml' - 'build.yaml' - 'lefthook.yml' keywords: - build_runner - dart format - dart_code_metrics

Tooling & CI

Priority: P1 (HIGH)

Implementation Guidelines

  • Linter: Use analysis_options.yaml. Enforce always_use_package_imports and require_trailing_commas.
  • Formatting: Use dart format . --line-length 80. Run on every commit.
  • DCM: Use dart_code_metrics for complexity checks (Max cyclomatic complexity: 15).
  • Build Runner: Always use --delete-conflicting-outputs with code generation.
  • CI Pipeline: All PRs MUST pass analyze, format, and test steps.
  • Imports: Group imports: dart:, package:, then relative.
  • Documentation: Use /// for public APIs. Link symbols using [Class].
  • Linting Commands:
  • flutter analyze --fatal-infos --fatal-warnings
  • dart run dart_code_metrics:metrics analyze lib
  • Pre-commit: Keep lefthook.yml in sync with analyze/format/metrics commands.

Code

# analysis_options.yaml
analyzer:
  errors:
    todo: ignore
    missing_required_param: error
linter:
  rules:
    - prefer_single_quotes
    - unawaited_futures

Anti-Patterns

  • No build_runner without --delete-conflicting-outputs: Causes stale generated file conflicts that break compilation.
  • No flutter build before flutter analyze: Analyze fast; always fail fast before building.
  • No ignore comment without explanation: Always annotate why lint ignore justified.
  • No skipping dart format in pre-commit: Unformatted code breaks CI; enforce via lefthook.yml.

References

  • language | testing
我的收藏