Dart 语言指南¶
linthis 使用 dart analyze 进行代码检查,使用 dart format 进行代码格式化。这两个工具都包含在 Dart SDK 中。
支持的文件扩展名¶
.dart
必需工具¶
Dart SDK¶
代码检查和格式化工具都包含在 Dart SDK 中。
# macOS
brew install dart
# Linux (Ubuntu/Debian)
sudo apt install dart
# Windows
choco install dart-sdk
# 或安装 Flutter(包含 Dart)
# https://flutter.dev/docs/get-started/install
# 验证安装
dart --version
配置¶
基本示例¶
# .linthis/config.toml
[dart]
max_complexity = 15
excludes = [".dart_tool/**", "build/**", "*.g.dart"]
禁用特定规则¶
[dart.rules]
disable = [
"prefer_single_quotes",
"lines_longer_than_80_chars"
]
自定义规则¶
[[rules.custom]]
code = "dart/no-print"
pattern = "\\bprint\\s*\\("
message = "Use logging instead of print()"
severity = "warning"
languages = ["dart"]
[[rules.custom]]
code = "dart/no-debug-print"
pattern = "debugPrint\\s*\\("
message = "Remove debugPrint before release"
severity = "warning"
languages = ["dart"]
CLI 用法¶
# 仅检查 Dart 文件
linthis -c --lang dart
# 仅格式化 Dart 文件
linthis -f --lang dart
分析选项¶
创建 analysis_options.yaml:
include: package:lints/recommended.yaml
# 或对于 Flutter:
# include: package:flutter_lints/flutter.yaml
analyzer:
exclude:
- "**/*.g.dart"
- "**/*.freezed.dart"
errors:
invalid_annotation_target: ignore
linter:
rules:
- prefer_const_constructors
- prefer_const_declarations
- prefer_final_fields
- avoid_print
- prefer_single_quotes
常见问题¶
Dart 未找到¶
Warning: No dart linter available for dart files
Install: https://dart.dev/get-dart
生成的代码被检查¶
将生成的文件添加到排除项:
[dart]
excludes = [
"*.g.dart",
"*.freezed.dart",
"*.mocks.dart",
".dart_tool/**"
]
Flutter 特定检查¶
对于 Flutter 项目,使用 package:flutter_lints:
# analysis_options.yaml
include: package:flutter_lints/flutter.yaml
构建输出¶
将构建目录添加到排除项:
[dart]
excludes = ["build/**", ".dart_tool/**"]
最佳实践¶
- 使用 analysis_options.yaml:标准 Dart/Flutter 配置
- 排除生成的代码:将
*.g.dart、*.freezed.dart添加到排除项 - 使用推荐的检查:从
package:lints/recommended.yaml开始 - 空安全:确保所有代码都是空安全的
- Flutter 检查:Flutter 项目使用
package:flutter_lints