analyzeByCategory method
List<Violation>
analyzeByCategory(
- RuleCategory category,
- CompilationUnit unit, {
- LineInfo? lineInfo,
- String? filePath,
Runs rules by category.
Implementation
List<Violation> analyzeByCategory(
RuleCategory category,
CompilationUnit unit, {
LineInfo? lineInfo,
String? filePath,
}) {
final violations = <Violation>[];
final categoryRules = registry.getRulesByCategory(category);
for (final rule in categoryRules) {
if (!registry.isEnabled(rule.id)) {
continue;
}
if (filePath != null && _isExcluded(rule.id, filePath)) {
continue;
}
try {
final ruleViolations = rule.check(unit, lineInfo: lineInfo);
for (final violation in ruleViolations) {
violations.add(_applySettings(rule.id, violation));
}
} catch (e) {
// Report rule execution failure as warning
violations.add(Violation(
ruleId: rule.id,
message: 'Rule analysis failed: ${e.toString().split('\n').first}',
location: SourceRange.zero,
severity: RuleSeverity.warning,
));
}
}
return violations;
}