summaryrefslogtreecommitdiff
path: root/helix-term/src/ui/prompt.rs
diff options
context:
space:
mode:
authorBlaž Hrastnik2022-02-20 05:44:44 +0000
committerBlaž Hrastnik2022-02-20 05:44:44 +0000
commit2af04325d83cd0141400951252574666cffdf1af (patch)
tree5ead25957fa265638d9714e0d7c8568d75261035 /helix-term/src/ui/prompt.rs
parenta449156702112a1ee1d11ef2f5495067d801deef (diff)
fix: Allow multi-line prompt documentation
Diffstat (limited to 'helix-term/src/ui/prompt.rs')
-rw-r--r--helix-term/src/ui/prompt.rs16
1 files changed, 11 insertions, 5 deletions
diff --git a/helix-term/src/ui/prompt.rs b/helix-term/src/ui/prompt.rs
index 18b390dd..7088d6df 100644
--- a/helix-term/src/ui/prompt.rs
+++ b/helix-term/src/ui/prompt.rs
@@ -389,12 +389,18 @@ impl Prompt {
if let Some(doc) = (self.doc_fn)(&self.line) {
let mut text = ui::Text::new(doc.to_string());
+ let max_width = BASE_WIDTH * 3;
+ let padding = 1;
+
let viewport = area;
+
+ let (_width, height) = ui::text::required_size(&text.contents, max_width);
+
let area = viewport.intersection(Rect::new(
completion_area.x,
- completion_area.y.saturating_sub(3),
- BASE_WIDTH * 3,
- 3,
+ completion_area.y.saturating_sub(height + padding * 2),
+ max_width,
+ height + padding * 2,
));
let background = theme.get("ui.help");
@@ -402,8 +408,8 @@ impl Prompt {
text.render(
area.inner(&Margin {
- vertical: 1,
- horizontal: 1,
+ vertical: padding,
+ horizontal: padding,
}),
surface,
cx,