@@ -389,12 +389,18 @@ impl Prompt {
389389 if let Some(doc) = (self.doc_fn)(&self.line) {
390390 let mut text = ui::Text::new(doc.to_string());
391391
392+ let max_width = BASE_WIDTH * 3;
393+ let padding = 1;
394+
392395 let viewport = area;
396+
397+ let (_width, height) = ui::text::required_size(&text.contents, max_width);
398+
393399 let area = viewport.intersection(Rect::new(
394400 completion_area.x,
395− completion_area.y.saturating_sub(3),
396− BASE_WIDTH * 3,
397− 3,
401+ completion_area.y.saturating_sub(height + padding * 2),
402+ max_width,
403+ height + padding * 2,
398404 ));
399405
400406 let background = theme.get("ui.help");
@@ -402,8 +408,8 @@ impl Prompt {
402408
403409 text.render(
404410 area.inner(&Margin {
405− vertical: 1,
406− horizontal: 1,
411+ vertical: padding,
412+ horizontal: padding,
407413 }),
408414 surface,
409415 cx,