agent: Add some design tweaks (#28726)
Fine-tuning some areas of the Agent Panel design. Release Notes: - N/A
This commit is contained in:
parent
0d6e455bf6
commit
77f32582e2
2 changed files with 35 additions and 11 deletions
|
@ -12,12 +12,12 @@ use anyhow::Context as _;
|
||||||
use assistant_settings::{AssistantSettings, NotifyWhenAgentWaiting};
|
use assistant_settings::{AssistantSettings, NotifyWhenAgentWaiting};
|
||||||
use collections::{HashMap, HashSet};
|
use collections::{HashMap, HashSet};
|
||||||
use editor::scroll::Autoscroll;
|
use editor::scroll::Autoscroll;
|
||||||
use editor::{Editor, MultiBuffer};
|
use editor::{Editor, EditorElement, EditorStyle, MultiBuffer};
|
||||||
use gpui::{
|
use gpui::{
|
||||||
AbsoluteLength, Animation, AnimationExt, AnyElement, App, ClickEvent, ClipboardItem,
|
AbsoluteLength, Animation, AnimationExt, AnyElement, App, ClickEvent, ClipboardItem,
|
||||||
DefiniteLength, EdgesRefinement, Empty, Entity, Focusable, Hsla, ListAlignment, ListState,
|
DefiniteLength, EdgesRefinement, Empty, Entity, Focusable, Hsla, ListAlignment, ListState,
|
||||||
MouseButton, PlatformDisplay, ScrollHandle, Stateful, StyleRefinement, Subscription, Task,
|
MouseButton, PlatformDisplay, ScrollHandle, Stateful, StyleRefinement, Subscription, Task,
|
||||||
TextStyleRefinement, Transformation, UnderlineStyle, WeakEntity, WindowHandle,
|
TextStyle, TextStyleRefinement, Transformation, UnderlineStyle, WeakEntity, WindowHandle,
|
||||||
linear_color_stop, linear_gradient, list, percentage, pulsating_between,
|
linear_color_stop, linear_gradient, list, percentage, pulsating_between,
|
||||||
};
|
};
|
||||||
use language::{Buffer, LanguageRegistry};
|
use language::{Buffer, LanguageRegistry};
|
||||||
|
@ -33,7 +33,9 @@ use std::sync::Arc;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use text::ToPoint;
|
use text::ToPoint;
|
||||||
use theme::ThemeSettings;
|
use theme::ThemeSettings;
|
||||||
use ui::{Disclosure, IconButton, KeyBinding, Scrollbar, ScrollbarState, Tooltip, prelude::*};
|
use ui::{
|
||||||
|
Disclosure, IconButton, KeyBinding, Scrollbar, ScrollbarState, TextSize, Tooltip, prelude::*,
|
||||||
|
};
|
||||||
use util::ResultExt as _;
|
use util::ResultExt as _;
|
||||||
use workspace::{OpenOptions, Workspace};
|
use workspace::{OpenOptions, Workspace};
|
||||||
|
|
||||||
|
@ -65,8 +67,6 @@ pub struct ActiveThread {
|
||||||
open_feedback_editors: HashMap<MessageId, Entity<Editor>>,
|
open_feedback_editors: HashMap<MessageId, Entity<Editor>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
const MAX_UNCOLLAPSED_LINES_IN_CODE_BLOCK: usize = 5;
|
|
||||||
|
|
||||||
struct RenderedMessage {
|
struct RenderedMessage {
|
||||||
language_registry: Arc<LanguageRegistry>,
|
language_registry: Arc<LanguageRegistry>,
|
||||||
segments: Vec<RenderedMessageSegment>,
|
segments: Vec<RenderedMessageSegment>,
|
||||||
|
@ -291,6 +291,8 @@ fn tool_use_markdown_style(window: &Window, cx: &mut App) -> MarkdownStyle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const MAX_UNCOLLAPSED_LINES_IN_CODE_BLOCK: usize = 10;
|
||||||
|
|
||||||
fn render_markdown_code_block(
|
fn render_markdown_code_block(
|
||||||
message_id: MessageId,
|
message_id: MessageId,
|
||||||
ix: usize,
|
ix: usize,
|
||||||
|
@ -577,7 +579,7 @@ fn render_markdown_code_block(
|
||||||
if is_expanded {
|
if is_expanded {
|
||||||
this.h_full()
|
this.h_full()
|
||||||
} else {
|
} else {
|
||||||
this.max_h_40()
|
this.max_h_80()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
@ -1496,12 +1498,36 @@ impl ActiveThread {
|
||||||
.when(!message_is_empty, |parent| {
|
.when(!message_is_empty, |parent| {
|
||||||
parent.child(
|
parent.child(
|
||||||
if let Some(edit_message_editor) = edit_message_editor.clone() {
|
if let Some(edit_message_editor) = edit_message_editor.clone() {
|
||||||
|
let settings = ThemeSettings::get_global(cx);
|
||||||
|
let font_size = TextSize::Small.rems(cx);
|
||||||
|
let line_height = font_size.to_pixels(window.rem_size()) * 1.5;
|
||||||
|
|
||||||
|
let text_style = TextStyle {
|
||||||
|
color: cx.theme().colors().text,
|
||||||
|
font_family: settings.buffer_font.family.clone(),
|
||||||
|
font_fallbacks: settings.buffer_font.fallbacks.clone(),
|
||||||
|
font_features: settings.buffer_font.features.clone(),
|
||||||
|
font_size: font_size.into(),
|
||||||
|
line_height: line_height.into(),
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
|
||||||
div()
|
div()
|
||||||
.key_context("EditMessageEditor")
|
.key_context("EditMessageEditor")
|
||||||
.on_action(cx.listener(Self::cancel_editing_message))
|
.on_action(cx.listener(Self::cancel_editing_message))
|
||||||
.on_action(cx.listener(Self::confirm_editing_message))
|
.on_action(cx.listener(Self::confirm_editing_message))
|
||||||
.min_h_6()
|
.min_h_6()
|
||||||
.child(edit_message_editor)
|
.pt_1()
|
||||||
|
.child(EditorElement::new(
|
||||||
|
&edit_message_editor,
|
||||||
|
EditorStyle {
|
||||||
|
background: colors.editor_background,
|
||||||
|
local_player: cx.theme().players().local(),
|
||||||
|
text: text_style,
|
||||||
|
syntax: cx.theme().syntax().clone(),
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
))
|
||||||
.into_any()
|
.into_any()
|
||||||
} else {
|
} else {
|
||||||
div()
|
div()
|
||||||
|
@ -1666,11 +1692,9 @@ impl ActiveThread {
|
||||||
),
|
),
|
||||||
Role::Assistant => v_flex()
|
Role::Assistant => v_flex()
|
||||||
.id(("message-container", ix))
|
.id(("message-container", ix))
|
||||||
.ml_2()
|
.ml_2p5()
|
||||||
.pl_2()
|
.pl_2()
|
||||||
.pr_4()
|
.pr_4()
|
||||||
.border_l_1()
|
|
||||||
.border_color(cx.theme().colors().border_variant)
|
|
||||||
.children(message_content)
|
.children(message_content)
|
||||||
.when(has_tool_uses, |parent| {
|
.when(has_tool_uses, |parent| {
|
||||||
parent.children(
|
parent.children(
|
||||||
|
|
|
@ -56,7 +56,7 @@ pub struct MessageEditor {
|
||||||
_subscriptions: Vec<Subscription>,
|
_subscriptions: Vec<Subscription>,
|
||||||
}
|
}
|
||||||
|
|
||||||
const MAX_EDITOR_LINES: usize = 3;
|
const MAX_EDITOR_LINES: usize = 8;
|
||||||
|
|
||||||
impl MessageEditor {
|
impl MessageEditor {
|
||||||
pub fn new(
|
pub fn new(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue