named_parameters_ordering
A lint which allows to enforce a particular named parameter ordering conventions.
Configuration format
- named_parameters_ordering:
order:
- (parameterType)
Where parameterType can be one of:
super
required_super
required
nullable
default
Example:
Assuming config:
custom_lint:
rules:
- named_parameters_ordering:
order:
- required
- required_super
- default
- nullable
- super
BAD:
class UserProfile extends User {
final String? age;
final String? country;
final String email;
final bool isActive;
final String name;
UserProfile({
this.age,
required super.accountType, // LINT, required super named parameters should be before nullable named parameters
required this.name, // LINT, required named parameters should be before super named parameters
super.userId,
this.country, // LINT, nullable named parameters should be before super named parameters
this.isActive = true, // LINT, default named parameters should be before nullable named parameters
required this.email, // LINT, required named parameters should be before default named parameters
});
void doSomething({
required String name,
int? age,
bool isActive = true, // LINT, default named parameters should be before nullable named parameters
required String email, // LINT, required named parameters should be before default named parameters
}) {
return;
}
}
GOOD:
class UserProfile extends User {
final String? age;
final String? country;
final String email;
final bool isActive;
final String name;
UserProfile({
required this.name,
required this.email,
required super.accountType,
this.isActive = true,
this.age,
this.country,
super.userId,
});
void doSomething({
required String name,
required String email,
bool isActive = true,
int? age,
}) {
return;
}
}
Parameters
order (List<ParameterType>)
Config used for order of named parameters