11import 'package:analyzer/dart/ast/ast.dart' ;
22import 'package:analyzer/error/listener.dart' ;
33import 'package:custom_lint_builder/custom_lint_builder.dart' ;
4+ import 'package:solid_lints/src/lints/use_descriptive_names_for_type_parameters/models/use_descriptive_names_for_type_parameters_parameters.dart' ;
45import 'package:solid_lints/src/models/rule_config.dart' ;
56import 'package:solid_lints/src/models/solid_lint_rule.dart' ;
67
78/// A `use_descriptive_names_for_type_parameters` rule which
89/// warns about single-letter type parameter names when there are
910/// three or more type parameters.
10- class UseDescriptiveNamesForTypeParametersRule extends SolidLintRule {
11+ class UseDescriptiveNamesForTypeParametersRule
12+ extends SolidLintRule <UseDescriptiveNamesForTypeParametersParameters > {
1113 /// The lint rule name.
1214 static const lintName = 'use_descriptive_names_for_type_parameters' ;
1315
@@ -21,9 +23,11 @@ class UseDescriptiveNamesForTypeParametersRule extends SolidLintRule {
2123 final rule = RuleConfig (
2224 configs: configs,
2325 name: lintName,
24- problemMessage: (_) =>
26+ paramsParser: UseDescriptiveNamesForTypeParametersParameters .fromJson,
27+ problemMessage: (value) =>
2528 'Type parameters should have descriptive names instead '
26- 'of single letters when there are three or more type parameters.' ,
29+ 'of single letters when there are ${value .minTypeParameters } or '
30+ 'more type parameters.' ,
2731 );
2832
2933 return UseDescriptiveNamesForTypeParametersRule ._(rule);
@@ -56,7 +60,9 @@ class UseDescriptiveNamesForTypeParametersRule extends SolidLintRule {
5660 TypeParameterList ? typeParameters,
5761 ErrorReporter reporter,
5862 ) {
59- if (typeParameters == null || typeParameters.typeParameters.length < 3 ) {
63+ if (typeParameters == null ||
64+ typeParameters.typeParameters.length <
65+ config.parameters.minTypeParameters) {
6066 return ;
6167 }
6268
0 commit comments