check method

  1. @override
void check(
  1. DcqRegistry registry
)

Implementation

@override
void check(
  DcqRegistry registry,
) {
  final entries = _parseEntries(configMapList(ruleConfig, 'entries') ?? []);
  if (entries.isEmpty) return;

  registry.addClassDeclaration((node) {
    final nameToken = node.namePart.typeName;
    final name = nameToken.lexeme;
    final filePath = registry.context.currentUnit?.file.path ?? '';

    for (final entry in entries) {
      if (entry.ignorePrivate && name.startsWith('_')) continue;
      if (entry.path != null && !RegExp(entry.path!).hasMatch(filePath)) {
        continue;
      }
      if (!entry.pattern.hasMatch(name)) {
        reportAtToken(nameToken);
        return;
      }
    }
  });
}