defaultRules top-level property

List<LintRule> defaultRules
final

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}.',
  ),
];