diff options
author | Blaž Hrastnik | 2022-02-20 05:44:44 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2022-02-20 05:44:44 +0000 |
commit | 2af04325d83cd0141400951252574666cffdf1af (patch) | |
tree | 5ead25957fa265638d9714e0d7c8568d75261035 /helix-term/src/ui/prompt.rs | |
parent | a449156702112a1ee1d11ef2f5495067d801deef (diff) |
fix: Allow multi-line prompt documentation
Diffstat (limited to 'helix-term/src/ui/prompt.rs')
-rw-r--r-- | helix-term/src/ui/prompt.rs | 16 |
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, |