analyzeWithRule method
Runs a specific rule by ID.
Implementation
List<Violation> analyzeWithRule(
String ruleId,
CompilationUnit unit, {
LineInfo? lineInfo,
String? filePath,
}) {
final rule = registry.get(ruleId);
if (rule == null) {
return const [];
}
if (!registry.isEnabled(ruleId)) {
return const [];
}
if (filePath != null && _isExcluded(ruleId, filePath)) {
return const [];
}
try {
final violations = rule.check(unit, lineInfo: lineInfo);
return violations.map((v) => _applySettings(ruleId, v)).toList();
} catch (e) {
// Report rule execution failure as warning
return [
Violation(
ruleId: ruleId,
message: 'Rule analysis failed: ${e.toString().split('\n').first}',
location: SourceRange.zero,
severity: RuleSeverity.warning,
),
];
}
}