fixSync method

Map<String, dynamic>? fixSync(
  1. String content,
  2. int offset,
  3. int length
)

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;
}