textTransformWordOrAdjacent function
TextCommandResult
textTransformWordOrAdjacent({
- required TextDocument document,
- required TextOffsetStateSnapshot state,
- required String transform(
- String text
Implementation
TextCommandResult textTransformWordOrAdjacent({
required TextDocument document,
required TextOffsetStateSnapshot state,
required String Function(String text) transform,
}) {
final range = nav.wordRangeForTransformFromReader(
document.length,
state.cursorOffset,
isWord: _isWordGrapheme,
graphemeAt: document.graphemeAt,
);
if (range == null || range.start == range.end) {
return _unchangedDocumentCommandResult(document, state);
}
final original = document.textInRange(
startOffset: range.start,
endOffset: range.end,
);
final transformed = transform(original);
if (transformed == original) {
return _unchangedDocumentCommandResult(document, state);
}
final working = document.copy();
final result = edit_ops.replaceDocumentTextRange(
working,
start: range.start,
end: range.end,
replacement: transformed,
);
return _documentCommandResult(
working,
cursorOffset: result.change.newEndOffset,
documentChange: result.change,
changed: result.changed,
);
}