start method
Starts the probe.
Implementations can write escape sequences here, then complete later via handleMsg events (UV events, etc).
Implementation
@override
Future<void> start(StartupProbeContext ctx) async {
if (_active) return;
if (!ctx.terminal.supportsAnsi || !ctx.terminal.isTerminal) return;
_active = true;
_done = Completer<void>();
final term = ctx.terminal;
term.write(Ansi.requestBackgroundColor);
term.write(Ansi.requestColorScheme);
await term.flush();
try {
await _done.future.timeout(timeout);
} on TimeoutException {
// Best-effort only: keep startup moving when the terminal does not
// answer OSC 11.
} finally {
_active = false;
}
}