runCommand method
Future<void>
runCommand(
- _CommandRequest request
)
override
Implementation
@override
Future<void> runCommand(_CommandRequest request) async {
final foldersToAnalyze = request.rest;
final rootFolder = request.rootFolder;
final rules = request.rules;
final excludes = request.excludes;
final reporter = request.reporters.first;
final resultList = <AnalyzedResult>[];
final contextCollection = AnalysisContextCollection(
includedPaths: foldersToAnalyze
.map((path) => normalize(join(rootFolder, path)))
.toList(),
);
for (final context in contextCollection.contexts) {
// TODO: load analysis options from context
// TODO: skip exludes files
final analyzedFiles = context.contextRoot.analyzedFiles().toSet();
for (final filePath in analyzedFiles) {
if (!filePath.endsWith('.dart')) {
continue;
}
final unit = await context.currentSession.getResolvedUnit(filePath);
if (unit is ResolvedUnitResult) {
final result = await analyzer.analyze(
AnalyzerConfig(
rules: rules,
excludes: excludes,
rootFolder: rootFolder,
),
unit,
filePath: filePath,
);
resultList.add(result);
}
}
}
reporter.report(resultList);
if (resultList.any((element) => element.issues.isNotEmpty)) {
throw ExitCommandException(1);
}
}