run method

  1. @override
void run(
  1. CustomLintResolver resolver,
  2. ErrorReporter reporter,
  3. CustomLintContext context
)

Emits lints for a given file.

run will only be invoked with files respecting filesToAnalyze

Implementation

@override
void run(
  CustomLintResolver resolver,
  ErrorReporter reporter,
  CustomLintContext context,
) {
  context.registry.addHookWidgetBody(
    isExactly: true,
    (node, diagnosticTarget) {
      // get all hook expressions from build method
      final hookExpressions = switch (node) {
        ExpressionFunctionBody(expression: final AstNode node) ||
        BlockFunctionBody(block: final AstNode node) =>
          getAllInnerHookExpressions(node),
        _ => <Expression>[],
      };

      if (hookExpressions.isNotEmpty) {
        return;
      }

      reporter.atNode(diagnosticTarget, _getLintCode());
    },
  );
}