applyEditToFile function

String applyEditToFile(
  1. String originalContent,
  2. String oldString,
  3. String newString, {
  4. bool replaceAll = false,
})

Apply a single edit to file content.

Implementation

String applyEditToFile(
  String originalContent,
  String oldString,
  String newString, {
  bool replaceAll = false,
}) {
  if (newString.isNotEmpty) {
    return replaceAll
        ? originalContent.replaceAll(oldString, newString)
        : originalContent.replaceFirst(oldString, newString);
  }

  // When deleting (newString is empty), strip trailing newline if present
  final stripTrailingNewline =
      !oldString.endsWith('\n') && originalContent.contains('$oldString\n');

  if (stripTrailingNewline) {
    return replaceAll
        ? originalContent.replaceAll('$oldString\n', newString)
        : originalContent.replaceFirst('$oldString\n', newString);
  }

  return replaceAll
      ? originalContent.replaceAll(oldString, newString)
      : originalContent.replaceFirst(oldString, newString);
}