charmbracelet / bubbles

TUI components for Bubble Tea 🫧

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

textinput: add support for wrapping the prompt

twpayne opened this issue · comments

Is your feature request related to a problem? Please describe.

My application uses textinputs with long prompts. The prompts are long because they contain multiple filenames from the user that can get quite long, for example:

$ chezmoi rm ~/.config/git/config
Remove /Users/twp/.config/git/config and /Users/twp/.local/share/chezmoi/home/private_dot_config/git/config.tmpl? yes/no/all/quit

textinput only displays the prompt up to the width of the terminal, which leads to the prompt being truncated and confusing, for example, with a terminal of width 80:

$ chezmoi rm ~/.config/git/config
Remove /Users/twp/.config/git/config and /Users/twp/.local/share/chezmoi/home/pr

Describe the solution you'd like

I'd like a boolean option to wrap the prompt over multiple lines, wrapping words (maybe using github.com/muesli/reflow) so you would get the following with a terminal width of 80:

$ chezmoi rm ~/.config/git/config
Remove /Users/twp/.config/git/config and /Users/twp/.local/share/chezmoi/home/
private_dot_config/git/config.tmpl? yes/no/all/quit

Describe alternatives you've considered

Forking textinput to add this functionality.

Additional context

#417 talks about multiline text, this feature request is about a multiline prompt.

I would happily submit a PR for this if you are interested.

This all makes sense to me; thanks for the well written writeup, Tom. If this is something you'd indeed like to work on, by all means go for it.

For what it's worth, textarea can support multiline prompts with this PR: