areFileEditsInputsEquivalent function
Check if two file edit inputs are equivalent.
Implementation
bool areFileEditsInputsEquivalent(
String filePath1,
List<FileEdit> edits1,
String filePath2,
List<FileEdit> edits2,
) {
if (filePath1 != filePath2) return false;
// Fast path: literal equality
if (edits1.length == edits2.length) {
var allMatch = true;
for (var i = 0; i < edits1.length; i++) {
if (edits1[i].oldString != edits2[i].oldString ||
edits1[i].newString != edits2[i].newString ||
edits1[i].replaceAll != edits2[i].replaceAll) {
allMatch = false;
break;
}
}
if (allMatch) return true;
}
// Semantic comparison (requires file read)
var fileContent = '';
try {
fileContent = File(filePath1).readAsStringSync();
} catch (_) {}
return areFileEditsEquivalent(edits1, edits2, fileContent);
}