炫酷的 Linter
这是一个为 dart/flutter 代码定制的 Linter 包。它可以设置 Linter 以排除某些单词。您可以在 analysis_options.yaml 中设置这些单词,示例如下
用法
1. 将依赖项添加到 pubspec.yaml
dev_dependencies:
cool_linter: ^1.2.0 # last version of plugin
2. 将配置添加到 analysis_options.yaml
analyzer:
plugins:
- cool_linter
cool_linter:
extended_rules:
- always_specify_stream_subscription
- prefer_trailing_comma
always_specify_types:
- typed_literal
- declared_identifier
- set_or_map_literal
- simple_formal_parameter
- type_name
- variable_declaration_list
regexp_exclude:
-
pattern: Colors
hint: Use colors from design system instead!
severity: WARNING
-
pattern: Test123{1}
severity: ERROR
exclude_folders:
- test/**
- lib/ku/**
-
always_specify_types Linter:
always_specify_types
此规则类似于 dart 核心 Linter 规则,但您可以选择要使用的子规则
- typed_literal
- declared_identifier
- set_or_map_literal
- simple_formal_parameter
- type_name
- variable_declaration_list
您还可以选择排除此规则的文件夹。请参阅 exclude_folders
-
regexp_exclude Linter:
pattern- RegExp 模式,例如:Test123{1}, ^Test123$ 等severity- [可选参数]。这是控制台信息级别。可以是WARNING、INFO、ERROR。默认为 WARNINGhint- [可选参数]。这是控制台信息句子exclude_folders- Linter 将忽略这些文件夹。默认排除的文件夹是
'.dart_tool/**',
'.vscode/**',
'packages/**',
'ios/**',
'macos/**',
'web/**',
'linux/**',
'windows/**',
'go/**',
-
extended_rules. always_specify_stream_subscription Linter
始终为 Stream.listen(); 使用 StreamSubscription;
正确
final Stream<String> stream2 = Stream<String>.value('value');
final StreamSubscription<String> sub = stream2.listen((_) {}); // OK
警告
final Stream<String> stream1 = Stream<String>.value('value');
stream1.listen((String ttt) {}); // LINT
注意!!!
您必须重启 IDE 才能启动插件
3. CLI
您可以使用 Linter 作为命令行工具
dart bin/cool_linter_cli.dart analyze -tsc -d test/fix/result --regexp_path test/regexp/regexp_settings_cli.yaml
可用选项:
-d- 要分析的文件夹-f- 修复问题。目前仅适用于 prefer_trailing_comma 规则-t- 使用 always_specify_types_rule 规则-s- 使用 always_specify_stream_subscription 规则-c- 使用 prefer_trailing_comma 规则-f- 修复问题。目前仅适用于 prefer_trailing_comma 规则--regexp_path- 包含 RegExp 设置的文件路径
如果您想使用 RegExp 分析器,还必须指定 --regexp_path 参数。
示例:--regexp_path <包含 RegExp 设置的 .yaml 文件路径>
regexp_exclude:
-
pattern: Colors
hint: Use colors from design system instead!
severity: WARNING
-
pattern: \sTestClass\s
hint: Dont use TestClass
severity: ERROR
-
pattern: \sTestClass2\s
hint: Dont use TestClass2
severity: INFO

4. 结果
analysis_options.yaml 示例
analyzer:
plugins:
- cool_linter
cool_linter:
extended_rules:
- always_specify_stream_subscription
- prefer_trailing_comma
always_specify_types:
- typed_literal
- declared_identifier
- set_or_map_literal
- simple_formal_parameter
- type_name
- variable_declaration_list
regexp_exclude:
-
pattern: Colors
hint: Use colors from design system instead!
severity: WARNING
-
pattern: Test123{1}
severity: ERROR
exclude_folders:
- test/**
- lib/ku/**


