zeta: Fixes to completion-rating modal (#21852)
Release Notes: - N/A Co-authored-by: Antonio <antonio@zed.dev>
This commit is contained in:
parent
664468d468
commit
ae351298b4
2 changed files with 22 additions and 31 deletions
|
@ -795,10 +795,9 @@
|
||||||
"use_key_equivalents": true,
|
"use_key_equivalents": true,
|
||||||
"bindings": {
|
"bindings": {
|
||||||
"cmd-enter": "zeta::ThumbsUp",
|
"cmd-enter": "zeta::ThumbsUp",
|
||||||
"cmd-delete": "zeta::ThumbsDown",
|
|
||||||
"shift-down": "zeta::NextEdit",
|
"shift-down": "zeta::NextEdit",
|
||||||
"shift-up": "zeta::PreviousEdit",
|
"shift-up": "zeta::PreviousEdit",
|
||||||
"space": "zeta::PreviewCompletion"
|
"right": "zeta::PreviewCompletion"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,7 +8,7 @@ use language::{language_settings, OffsetRangeExt};
|
||||||
|
|
||||||
use settings::Settings;
|
use settings::Settings;
|
||||||
use theme::ThemeSettings;
|
use theme::ThemeSettings;
|
||||||
use ui::{prelude::*, List, ListItem, ListItemSpacing, TintColor};
|
use ui::{prelude::*, List, ListItem, ListItemSpacing, TintColor, Tooltip};
|
||||||
use workspace::{ModalView, Workspace};
|
use workspace::{ModalView, Workspace};
|
||||||
|
|
||||||
actions!(
|
actions!(
|
||||||
|
@ -154,27 +154,6 @@ impl RateCompletionModal {
|
||||||
cx.notify();
|
cx.notify();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn thumbs_down(&mut self, _: &ThumbsDown, cx: &mut ViewContext<Self>) {
|
|
||||||
self.zeta.update(cx, |zeta, cx| {
|
|
||||||
let completion = zeta
|
|
||||||
.recent_completions()
|
|
||||||
.skip(self.selected_index)
|
|
||||||
.next()
|
|
||||||
.cloned();
|
|
||||||
|
|
||||||
if let Some(completion) = completion {
|
|
||||||
zeta.rate_completion(
|
|
||||||
&completion,
|
|
||||||
InlineCompletionRating::Negative,
|
|
||||||
"".to_string(),
|
|
||||||
cx,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
self.select_next_edit(&Default::default(), cx);
|
|
||||||
cx.notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
fn thumbs_up_active(&mut self, _: &ThumbsUpActiveCompletion, cx: &mut ViewContext<Self>) {
|
fn thumbs_up_active(&mut self, _: &ThumbsUpActiveCompletion, cx: &mut ViewContext<Self>) {
|
||||||
self.zeta.update(cx, |zeta, cx| {
|
self.zeta.update(cx, |zeta, cx| {
|
||||||
if let Some(active) = &self.active_completion {
|
if let Some(active) = &self.active_completion {
|
||||||
|
@ -199,16 +178,20 @@ impl RateCompletionModal {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn thumbs_down_active(&mut self, _: &ThumbsDownActiveCompletion, cx: &mut ViewContext<Self>) {
|
fn thumbs_down_active(&mut self, _: &ThumbsDownActiveCompletion, cx: &mut ViewContext<Self>) {
|
||||||
self.zeta.update(cx, |zeta, cx| {
|
if let Some(active) = &self.active_completion {
|
||||||
if let Some(active) = &self.active_completion {
|
if active.feedback_editor.read(cx).text(cx).is_empty() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.zeta.update(cx, |zeta, cx| {
|
||||||
zeta.rate_completion(
|
zeta.rate_completion(
|
||||||
&active.completion,
|
&active.completion,
|
||||||
InlineCompletionRating::Negative,
|
InlineCompletionRating::Negative,
|
||||||
active.feedback_editor.read(cx).text(cx),
|
active.feedback_editor.read(cx).text(cx),
|
||||||
cx,
|
cx,
|
||||||
);
|
);
|
||||||
}
|
});
|
||||||
});
|
}
|
||||||
|
|
||||||
let current_completion = self
|
let current_completion = self
|
||||||
.active_completion
|
.active_completion
|
||||||
|
@ -292,7 +275,7 @@ impl RateCompletionModal {
|
||||||
editor.set_show_wrap_guides(false, cx);
|
editor.set_show_wrap_guides(false, cx);
|
||||||
editor.set_show_indent_guides(false, cx);
|
editor.set_show_indent_guides(false, cx);
|
||||||
editor.set_show_inline_completions(Some(false), cx);
|
editor.set_show_inline_completions(Some(false), cx);
|
||||||
editor.set_placeholder_text("Add your feedback about this completion…", cx);
|
editor.set_placeholder_text("Add your feedback about this completion… (Negative feedback requires an explanation for why it was bad, and what you expected instead.)", cx);
|
||||||
if focus {
|
if focus {
|
||||||
cx.focus_self();
|
cx.focus_self();
|
||||||
}
|
}
|
||||||
|
@ -361,6 +344,11 @@ impl RateCompletionModal {
|
||||||
};
|
};
|
||||||
|
|
||||||
let rated = self.zeta.read(cx).is_completion_rated(completion_id);
|
let rated = self.zeta.read(cx).is_completion_rated(completion_id);
|
||||||
|
let feedback_empty = active_completion
|
||||||
|
.feedback_editor
|
||||||
|
.read(cx)
|
||||||
|
.text(cx)
|
||||||
|
.is_empty();
|
||||||
|
|
||||||
let border_color = cx.theme().colors().border;
|
let border_color = cx.theme().colors().border;
|
||||||
let bg_color = cx.theme().colors().editor_background;
|
let bg_color = cx.theme().colors().editor_background;
|
||||||
|
@ -430,7 +418,12 @@ impl RateCompletionModal {
|
||||||
.icon_size(IconSize::Small)
|
.icon_size(IconSize::Small)
|
||||||
.icon_position(IconPosition::Start)
|
.icon_position(IconPosition::Start)
|
||||||
.icon_color(Color::Error)
|
.icon_color(Color::Error)
|
||||||
.disabled(rated)
|
.disabled(rated || feedback_empty)
|
||||||
|
.when(feedback_empty, |this| {
|
||||||
|
this.tooltip(|cx| {
|
||||||
|
Tooltip::text("Explain why this completion is bad before reporting it", cx)
|
||||||
|
})
|
||||||
|
})
|
||||||
.on_click(cx.listener(move |this, _, cx| {
|
.on_click(cx.listener(move |this, _, cx| {
|
||||||
this.thumbs_down_active(
|
this.thumbs_down_active(
|
||||||
&ThumbsDownActiveCompletion,
|
&ThumbsDownActiveCompletion,
|
||||||
|
@ -475,7 +468,6 @@ impl Render for RateCompletionModal {
|
||||||
.on_action(cx.listener(Self::select_first))
|
.on_action(cx.listener(Self::select_first))
|
||||||
.on_action(cx.listener(Self::select_last))
|
.on_action(cx.listener(Self::select_last))
|
||||||
.on_action(cx.listener(Self::thumbs_up))
|
.on_action(cx.listener(Self::thumbs_up))
|
||||||
.on_action(cx.listener(Self::thumbs_down))
|
|
||||||
.on_action(cx.listener(Self::thumbs_up_active))
|
.on_action(cx.listener(Self::thumbs_up_active))
|
||||||
.on_action(cx.listener(Self::thumbs_down_active))
|
.on_action(cx.listener(Self::thumbs_down_active))
|
||||||
.on_action(cx.listener(Self::focus_completions))
|
.on_action(cx.listener(Self::focus_completions))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue