@@ -98,7 +98,9 @@ pub use sum_tree::Bias;
use sum_tree::TreeMap;
use text::{OffsetUtf16, Rope};
use theme::{ActiveTheme, PlayerColor, StatusColors, SyntaxTheme, ThemeColors, ThemeSettings};
-use ui::{h_stack, ButtonSize, ButtonStyle, Icon, IconButton, Popover, Tooltip};
+use ui::{
+ h_stack, ButtonSize, ButtonStyle, Icon, IconButton, ListItem, ListItemSpacing, Popover, Tooltip,
+};
use ui::{prelude::*, IconSize};
use util::{post_inc, RangeExt, ResultExt, TryFutureExt};
use workspace::{searchable::SearchEvent, ItemNavHistory, Pane, SplitDirection, ViewId, Workspace};
@@ -1201,6 +1203,7 @@ impl CompletionsMenu {
.on_mouse_down(MouseButton::Left, |_, cx| cx.stop_propagation())
})
};
+
let list = uniform_list(
cx.view().clone(),
"completions",
@@ -1238,28 +1241,27 @@ impl CompletionsMenu {
.with_highlights(&style.text, highlights);
let documentation_label =
if let Some(Documentation::SingleLine(text)) = documentation {
- Some(SharedString::from(text.clone()))
- .filter(|text| !text.trim().is_empty())
+ if text.trim().is_empty() {
+ None
+ } else {
+ Some(
+ h_stack().ml_4().child(
+ Label::new(text.clone())
+ .size(LabelSize::Small)
+ .color(Color::Muted),
+ ),
+ )
+ }
} else {
None
};
- div()
- .id(mat.candidate_id)
- .min_w(px(220.))
- .max_w(px(540.))
- .whitespace_nowrap()
- .overflow_hidden()
- .px_1()
- .rounded(px(4.))
- .bg(cx.theme().colors().ghost_element_background)
- .hover(|style| style.bg(cx.theme().colors().ghost_element_hover))
- .when(item_ix == selected_item, |div| {
- div.bg(cx.theme().colors().ghost_element_selected)
- })
- .on_mouse_down(
- MouseButton::Left,
- cx.listener(move |editor, _event, cx| {
+ div().min_w(px(220.)).max_w(px(540.)).child(
+ ListItem::new(mat.candidate_id)
+ .inset(true)
+ .spacing(ListItemSpacing::Sparse)
+ .selected(item_ix == selected_item)
+ .on_click(cx.listener(move |editor, _event, cx| {
cx.stop_propagation();
editor
.confirm_completion(
@@ -1269,10 +1271,10 @@ impl CompletionsMenu {
cx,
)
.map(|task| task.detach_and_log_err(cx));
- }),
- )
- .child(completion_label)
- .children(documentation_label)
+ }))
+ .child(h_stack().overflow_hidden().child(completion_label))
+ .end_slot::<Div>(documentation_label),
+ )
})
.collect()
},