get_cursor_position method
Implementation
DCCursorPosition get_cursor_position() {
final lm = raw_console.line_mode;
final em = raw_console.echo_mode;
raw_console.line_mode = false;
raw_console.echo_mode = false;
write_ansi('6n');
final bytes = <int>[];
for (;;) {
final byte = raw_console.read_byte();
bytes.add(byte);
if (byte == 82) {
break;
}
}
raw_console.line_mode = lm;
raw_console.echo_mode = em;
String str = String.fromCharCodes(bytes);
str = str.substring(
str.lastIndexOf("[") + 1,
str.length - 1,
);
final parts = List<int>.from(
str.split(';').map<int>(
(final it) => int.parse(it),
),
).toList();
return DCCursorPosition(
parts[1],
parts[0],
);
}