getLints method

  1. @override
Stream getLints(
  1. ResolvedUnitResult unit
)
override

Implementation

@override
Stream<Lint> getLints(ResolvedUnitResult unit) async* {
  final fileObject = FileObject(unit.path);

  if (fileObject.isUI) {
    return;
  }

  final regex = RegExp(r'(L10n\.translate.+)[,;\n]');
  final matches = regex.allMatches(unit.content);

  for (var match in matches) {
    final takeOne = match.group(1)?.endsWith(',') == true ||
        match.group(1)?.endsWith(';') == true;
    final length = match.end - match.start - (takeOne ? 1 : 0);

    yield toLint(
      'only_use_l10n_in_ui_lint',
      unit.lintLocationFromOffset(match.start, length: length),
      severity: LintSeverity.warning,
    );
  }
}