analyzeSync method
Synchronous analysis. Note: This spawns a new process for each file.
Implementation
List<dynamic> analyzeSync(String content) {
final binary = _getBinaryPathSync();
if (binary == null) return [];
Directory? tempDir;
try {
tempDir = Directory.systemTemp.createTempSync('rust_lint_');
final tempFile = File(p.join(tempDir.path, 'temp.dart'));
tempFile.writeAsStringSync(content);
final result = Process.runSync(
binary,
['--path', tempFile.path, '--format', 'json'],
stdoutEncoding: utf8,
);
if (result.exitCode == 0) {
final output = result.stdout.toString();
if (output.trim().isNotEmpty) {
return jsonDecode(output) as List<dynamic>;
}
} else {
// print("Linter failed: ${result.stderr}");
}
} catch (e) {
// print("Linter execution error: $e");
} finally {
try {
tempDir?.deleteSync(recursive: true);
} catch (_) {}
}
return [];
}