supportsCursorResponse method
Checks asynchronously if the terminal supports cursor position reporting,
with a configurable timeout
.
Sends a cursor position request and completes with true
if a response is
received within timeout
, else completes false
.
Implementation
Future<bool> supportsCursorResponse({
Duration timeout = const Duration(milliseconds: 200),
}) {
final completer = Completer<bool>();
getCursorPosition((x, y) {
if (!completer.isCompleted) {
completer.complete(true);
}
});
Future.delayed(timeout, () {
if (!completer.isCompleted) {
_expectingCursorResponse = false;
_cursorInputBuffer.clear();
completer.complete(false);
}
});
return completer.future;
}