iterateReplacements method
void
iterateReplacements({})
Implementation
void iterateReplacements(
{onUnmodified(String string)?,
onRemoval(String string)?,
onAddition(String string)?}) {
_replacements.sort((r1, r2) => r1.span.compareTo(r2.span));
var lastEdge = 0;
for (_Replacement replacement in _replacements) {
if (replacement.span.start.offset < lastEdge) {
throw 'Overlapping replacement $replacement in replacements $_replacements.';
}
var unmodifiedText =
sourceFile.getText(lastEdge, replacement.span.start.offset);
var removalText = replacement.span.text;
var additionText = replacement.newText;
if (onUnmodified != null && unmodifiedText.isNotEmpty) {
onUnmodified(unmodifiedText);
}
if (onRemoval != null && removalText.isNotEmpty) {
onRemoval(removalText);
}
if (onAddition != null && additionText.isNotEmpty) {
onAddition(additionText);
}
lastEdge = replacement.span.end.offset;
}
var unmodifiedText = sourceFile.getText(lastEdge);
if (onUnmodified != null) {
onUnmodified(unmodifiedText);
}
}