fixSync method
Synchronous fix generation.
Implementation
Map<String, dynamic>? fixSync(String content, int offset, int length) {
final binary = _getBinaryPathSync();
if (binary == null) return null;
Directory? tempDir;
try {
tempDir = Directory.systemTemp.createTempSync('rust_fix_');
final tempFile = File(p.join(tempDir.path, 'temp.dart'));
tempFile.writeAsStringSync(content);
final result = Process.runSync(binary, [
'--fix',
'--path',
tempFile.path,
'--offset',
'$offset',
'--length',
'$length',
'--format',
'json',
]);
if (result.exitCode == 0) {
final output = result.stdout.toString();
if (output.trim().isNotEmpty) {
return jsonDecode(output) as Map<String, dynamic>;
}
} else {
// print("Rust fix failed: ${result.stderr}");
}
} catch (e) {
// print("Error running Rust fix: $e");
} finally {
try {
tempDir?.deleteSync(recursive: true);
} catch (_) {}
}
return null;
}