selectLastLines static method
Attempts to select the last N lines starting from the current caret position.
Implementation
static void selectLastLines(TextEditingController textEditingController,
{int offset = 1}) {
if (offset < 1) {
return;
}
final caretPosition = textEditingController.selection.start;
final rightToCaret = textEditingController.text.substring(caretPosition);
final textUntilNextDelimiter =
textEditingController.text.substring(0, caretPosition) +
rightToCaret.split("\n").first;
final selectedLines =
textUntilNextDelimiter.split("\n").reversed.take(offset);
final int totalCharacters =
selectedLines.join().length + selectedLines.length - 1;
textEditingController.selection = TextSelection(
baseOffset: textUntilNextDelimiter.length - totalCharacters,
extentOffset: textUntilNextDelimiter.length);
}