PromptRunner<T> class

A helper class to run an interactive terminal prompt inline. It encapsulates the event loop, rendering to an inline buffer, and lifecycle management.

Example:

final name = await PromptRunner<String>(
  terminal: terminal,
  widget: Column([
    const Text('Enter name:'),
    TextField(controller: myController, focused: true),
  ]),
  exitConditions: {
    PromptExitTrigger.enter: PromptExitAction.complete,
    PromptExitTrigger.escape: PromptExitAction.cancel,
  },
  onComplete: () => myController.text,
).run();
Implemented types

Constructors

PromptRunner({required Terminal terminal, required Widget widget, Map<PromptExitTrigger, PromptExitAction>? exitConditions, bool onKeyEvent(KeyEvent event)?, void onPasteEvent(PasteEvent event)?, T onComplete()?, bool alternateScreen = false, void onFramePainted(Buffer buffer)?, ExecutionMode mode = ExecutionMode.standalone})
Creates a new PromptRunner.

Properties

alternateScreen → bool
Whether to render in alternate screen mode.
final
currentBuffer → Buffer?
Exposes the current buffer containing the rendered output.
no setteroverride
exitConditions → Map<PromptExitTrigger, PromptExitAction>
Mapping of exit triggers to their corresponding actions.
final
hashCode → int
The hash code for this object.
no setterinherited
hasScheduledFrame → bool
Exposes whether a draw frame is currently scheduled.
no setter
isDirty → bool
Whether the renderer needs a visual rebuild/update.
no setteroverride
isDisposed → bool
Exposes whether the prompt runner is disposed.
no setter
lastMousePosition → Point<int>?
The last known mouse position coordinate.
no setter
mode → ExecutionMode
The execution mode of this runner.
final
onComplete → T Function()?
An optional completion callback returning the final value of type T.
final
onFramePainted → void Function(Buffer buffer)?
Callback after each frame is painted onto the buffer.
final
onKeyEvent → bool Function(KeyEvent event)?
An optional key event handler callback. Returns true if prompt is completed.
final
onNeedVisualUpdate ↔ void Function()?
Callback triggered when this renderer's visual content changes and needs to be composited/repainted.
getter/setter pairoverride
onPasteEvent → void Function(PasteEvent event)?
An optional paste event handler callback.
final
requestedCursorPosition → Point<int>?
The requested cursor coordinates, if any.
no setteroverride
rootElement → Element?
Exposes the root element of the mounted widget tree for testing.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
showsCursor → bool
Whether the hardware terminal cursor should be shown.
no setteroverride
terminal → Terminal
The active terminal instance.
final
wantsAlternateScreen → bool
Whether alternate screen buffer mode is requested.
no setteroverride
wantsMouseTracking → bool
Whether mouse tracking features are requested.
no setteroverride
widget ↔ Widget
The root widget configuration to display.
getter/setter pair

Methods

abort([Object? exception]) → void
Public programmatic abort.
dispose() → void
Public programmatic dispose/cleanup.
override
handleKeyEvent(KeyEvent event) → bool
Handles key events routed to this renderer. Returns true if handled.
override
handleMouseEvent(MouseEvent event) → bool
Handles mouse events routed to this renderer. Returns true if the event was consumed.
override
handlePasteEvent(PasteEvent event) → void
Handles bracketed paste events.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
pump() → void
Forces a rebuild of the element tree and repaints to the internal buffer.
reassemble() → void
Called during hot reload to force the entire widget tree to rebuild and repaint.
override
render() → void
Recalculates layout and paints the widget tree to the internal buffer.
override
resize(int width, int height) → void
Programmatically resizes the runner viewport and updates layout/buffers.
override
run() → Future<T?>
Starts the inline prompt loop and returns a Future containing the final result.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Properties

onPromptEnded ↔ void Function(PromptRunner runner)?
Static hook called when a prompt runner ends/disposes.
getter/setter pair
onPromptStarted ↔ void Function(PromptRunner runner)?
Static hook called when a prompt runner starts running.
getter/setter pair

Constants

defaultExitConditions → const Map<PromptExitTrigger, PromptExitAction>
Default exit conditions mapping.