check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  final alphabetize = configBool(ruleConfig, 'alphabetize') ?? false;
  final first = configStringList(ruleConfig, 'first') ?? const [];
  final last = configStringList(ruleConfig, 'last') ?? const [];

  registry.addArgumentList((node) {
    final namedArgs = node.arguments.whereType<NamedExpression>().toList();
    if (namedArgs.length < 2) return;

    final names = namedArgs.map((e) => e.name.label.name).toList();
    final expected = _computeExpectedOrder(
      names,
      node,
      alphabetize,
      first,
      last,
    );
    if (expected == null) return;

    for (var i = 0; i < names.length; i++) {
      if (names[i] != expected[i]) {
        reportAtNode(node);
        return;
      }
    }
  });
}