charmbracelet / charmbracelet/bubbles

textinput: add support for wrapping the prompt

Open
#483 5 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
8.9k
Forks
457
Avg merge
1d 18h
Merged PRs (30d)
5

Description

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

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

```console
$ 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:

```console
$ 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:

```console
$ 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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.