PromptRunner class
A centralized runner for interactive terminal prompts.
Composes TerminalSession + RenderOutput + key handling to provide a complete solution for interactive prompts.
Key feature: Never clears the entire terminal. Only clears lines written by the prompt/view itself, preserving any existing terminal content.
Usage:
final runner = PromptRunner();
final result = runner.run(
render: (out) {
out.writeln('My prompt content');
out.writeln('More content');
},
onKey: (event) {
if (event.type == KeyEventType.enter) return PromptResult.confirmed;
if (event.type == KeyEventType.esc) return PromptResult.cancelled;
return null; // continue loop
},
);
- Available extensions
Constructors
- PromptRunner({bool hideCursor = true, EndBehavior endBehavior = EndBehavior.clear, void onBeforeCleanup()?, void onAfterCleanup()?})
Properties
- endBehavior → EndBehavior
-
Controls what happens when the prompt ends.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- hideCursor → bool
-
Whether to hide the terminal cursor during the prompt.
final
- onAfterCleanup → void Function()?
-
Optional callback invoked after cleanup completes.
final
- onBeforeCleanup → void Function()?
-
Optional callback invoked before cleanup (e.g., for final styling).
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
run(
{required void render(RenderOutput out), required PromptResult? onKey(KeyEvent event)}) → PromptResult - Runs the prompt loop synchronously.
-
runCustom<
T> (T body(RenderOutput out)) → T - Runs custom logic within a managed terminal session.
-
runWithBindings(
{required void render(RenderOutput out), required KeyBindings bindings}) → PromptResult - Runs the prompt loop using a KeyBindings instance.
-
runWithFrame(
{required FrameView frame, required void content(FrameContext ctx), required KeyBindings bindings}) → PromptResult -
Available on PromptRunner, provided by the PromptRunnerFrameExtension extension
Runs a prompt with FrameView-based rendering. -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
toPromptResult(
KeyActionResult result) → PromptResult? - Converts the result to PromptRunner's PromptResult.