getSnippet function
Implementation
SnippetResult getSnippet(
String originalFile,
String oldString,
String newString, {
int contextLines = 4,
}) {
final before = originalFile.split(oldString)[0];
final replacementLine = '\n'.allMatches(before).length;
final newFileLines = applyEditToFile(
originalFile,
oldString,
newString,
).split(RegExp(r'\r?\n'));
final startLine = max(0, replacementLine - contextLines);
final endLine =
replacementLine + contextLines + '\n'.allMatches(newString).length + 1;
final snippetLines = newFileLines.sublist(
startLine,
min(endLine, newFileLines.length),
);
return SnippetResult(
snippet: snippetLines.join('\n'),
startLine: startLine + 1,
);
}