Class: Clack::Prompts::MultilineText
- Inherits:
-
Core::Prompt
- Object
- Core::Prompt
- Clack::Prompts::MultilineText
- Includes:
- Core::TextInputHelper
- Defined in:
- lib/clack/prompts/multiline_text.rb
Overview
Multi-line text input prompt with line navigation.
Features:
-
Enter inserts newline, Ctrl+D submits
-
Arrow key navigation (up/down between lines, left/right within line)
-
Backspace merges lines when at line start
-
Validation support
Constant Summary
Constants inherited from Core::Prompt
Core::Prompt::MIN_TERMINAL_WIDTH
Instance Attribute Summary
Attributes inherited from Core::Prompt
#error_message, #state, #value, #warning_message
Instance Method Summary collapse
-
#initialize(message:, initial_value: nil, **opts) ⇒ MultilineText
constructor
A new instance of MultilineText.
Methods included from Core::TextInputHelper
#current_placeholder, #format_placeholder_with_cursor, #handle_text_input, #input_display, #placeholder_display, #value_with_cursor
Methods inherited from Core::Prompt
flush_resize, register, #request_redraw, #run, setup_signal_handler, unregister
Constructor Details
#initialize(message:, initial_value: nil, **opts) ⇒ MultilineText
Returns a new instance of MultilineText.
30 31 32 33 34 35 |
# File 'lib/clack/prompts/multiline_text.rb', line 30 def initialize(message:, initial_value: nil, **opts) super(message:, **opts) @lines = parse_initial_value(initial_value) @line_index = @lines.length - 1 @cursor = current_line.grapheme_clusters.length end |