defaultRules top-level property
The default rules used for linting
Implementation
final List<LintRule> defaultRules = [
LintRule(
'header-max-length',
validator: (context) =>
context.config.maxHeaderLength >
context.message.header.toString().length,
invalidMessage: 'Header is too long.',
),
LintRule(
'has-description',
validator: (context) => context.message.description.isNotEmpty,
invalidMessage: 'Please provide a valid description.',
),
LintRule(
'scope-format',
validator: (context) {
final message = context.message;
if (!message.isConventional) {
final header = message.header.toString();
if (header.contains(':')) {
final typePart = header.split(':').first;
if ((typePart.contains('(') || typePart.contains(')')) &&
message.type.isEmpty) {
return false;
}
}
}
return true;
},
invalidMessage:
'Format header like "type: description", or "type(parser): description").',
),
LintRule(
'type-empty',
validator: (context) => context.message.type.isNotEmpty,
invalidMessage: 'No commit type.',
),
LintRule(
'type-case',
validator: (context) => _isLowerCase(context.message.type),
invalidMessageFn: (context) => 'Type should be in lowercase.',
),
LintRule(
'scope-case',
validator: (context) => _isLowerCase(context.message.scope),
invalidMessageFn: (context) => 'Scope should be in lowercase.',
),
LintRule(
'has-valid-type',
validator: (context) => context.config.types.contains(context.message.type),
invalidMessageFn: (context) =>
'Type "${context.message.type}" is unknown. Valid types are ${context.config.typesDisplay}.',
),
];