`reedline::prompt::base::Prompt` should be redesigned
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 818
- Forks
- 249
- Avg merge
- 4d 14h
- Merged PRs (30d)
- 30
Description
As I already noted here, the current implementation for prompts does not behave well under certain conditions (e. g. if reedline::prompt::base::Prompt returns a string containing control characters i. e. line breaks and carriage returns or if )
and it is missing at least a specification for how certain features should work together (e.g. multiline input and completions)

Fig 1. Prompt::render_prompt_right returns a string with line break

Fig 2. the same as Fig 1. but in a different terminal

Fig 3. prompts can be longer than terminal width

Fig 4. it works with whitespace
(For none of the above have I resized the terminal window)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with reedline::prompt::base::Prompt and the discussion linked from issue #348. Reproduce the reported cases involving control characters, multiline input, completions, and prompts wider than the terminal in multiple terminal environments. Done means agreeing on the prompt behavior and specification before implementing the redesign.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100