Make code actions menu prettier

This commit is contained in:
Antonio Scandurra
2023-11-10 16:41:21 +01:00
parent c76fd93015
commit bf576d47b1
+41 -24
View File
@@ -42,8 +42,8 @@ use gpui::{
action, actions, div, point, px, relative, rems, size, uniform_list, AnyElement, AppContext,
BackgroundExecutor, Bounds, ClipboardItem, Component, Context, DispatchContext, EventEmitter,
FocusHandle, FontFeatures, FontStyle, FontWeight, HighlightStyle, Hsla, InputHandler, Model,
ParentElement, Pixels, Render, Styled, Subscription, Task, TextStyle, UniformListScrollHandle,
View, ViewContext, VisualContext, WeakView, WindowContext,
ParentElement, Pixels, Render, StatelessInteractive, Styled, Subscription, Task, TextStyle,
UniformListScrollHandle, View, ViewContext, VisualContext, WeakView, WindowContext,
};
use highlight_matching_bracket::refresh_matching_bracket_highlights;
use hover_popover::{hide_hover, HoverState};
@@ -1570,12 +1570,29 @@ impl CodeActionsMenu {
.enumerate()
.map(|(ix, action)| {
let item_ix = range.start + ix;
div().child(action.lsp_action.title.clone())
let selected = selected_item == item_ix;
let colors = cx.theme().colors();
div()
.px_2()
.text_color(colors.text)
.when(selected, |style| {
style
.bg(colors.element_active)
.text_color(colors.text_accent)
})
.hover(|style| {
style
.bg(colors.element_hover)
.text_color(colors.text_accent)
})
.child(action.lsp_action.title.clone())
})
.collect()
},
)
.bg(gpui::red())
.bg(cx.theme().colors().element_background)
.px_2()
.py_1()
.render();
if self.deployed_from_indicator {
@@ -5948,29 +5965,29 @@ impl Editor {
});
}
// pub fn context_menu_first(&mut self, _: &ContextMenuFirst, cx: &mut ViewContext<Self>) {
// if let Some(context_menu) = self.context_menu.write().as_mut() {
// context_menu.select_first(self.project.as_ref(), cx);
// }
// }
pub fn context_menu_first(&mut self, _: &ContextMenuFirst, cx: &mut ViewContext<Self>) {
if let Some(context_menu) = self.context_menu.write().as_mut() {
context_menu.select_first(self.project.as_ref(), cx);
}
}
// pub fn context_menu_prev(&mut self, _: &ContextMenuPrev, cx: &mut ViewContext<Self>) {
// if let Some(context_menu) = self.context_menu.write().as_mut() {
// context_menu.select_prev(self.project.as_ref(), cx);
// }
// }
pub fn context_menu_prev(&mut self, _: &ContextMenuPrev, cx: &mut ViewContext<Self>) {
if let Some(context_menu) = self.context_menu.write().as_mut() {
context_menu.select_prev(self.project.as_ref(), cx);
}
}
// pub fn context_menu_next(&mut self, _: &ContextMenuNext, cx: &mut ViewContext<Self>) {
// if let Some(context_menu) = self.context_menu.write().as_mut() {
// context_menu.select_next(self.project.as_ref(), cx);
// }
// }
pub fn context_menu_next(&mut self, _: &ContextMenuNext, cx: &mut ViewContext<Self>) {
if let Some(context_menu) = self.context_menu.write().as_mut() {
context_menu.select_next(self.project.as_ref(), cx);
}
}
// pub fn context_menu_last(&mut self, _: &ContextMenuLast, cx: &mut ViewContext<Self>) {
// if let Some(context_menu) = self.context_menu.write().as_mut() {
// context_menu.select_last(self.project.as_ref(), cx);
// }
// }
pub fn context_menu_last(&mut self, _: &ContextMenuLast, cx: &mut ViewContext<Self>) {
if let Some(context_menu) = self.context_menu.write().as_mut() {
context_menu.select_last(self.project.as_ref(), cx);
}
}
pub fn move_to_previous_word_start(
&mut self,