This commit is contained in:
zumbalogy 2025-08-22 02:45:02 -04:00
parent 8be12051f9
commit bae3ed8522
7 changed files with 109 additions and 117 deletions

View file

@ -6,8 +6,8 @@ use settings::{Settings, SettingsSources};
use std::{fmt::Write, num::NonZeroU32, time::Duration};
use text::{Point, Selection};
use ui::{
Button, ButtonCommon, Clickable, Context, DynamicSpacing, FluentBuilder, IntoElement, LabelSize, ParentElement,
Render, Tooltip, Window, div,
Button, ButtonCommon, Clickable, Context, DynamicSpacing, FluentBuilder, IntoElement,
LabelSize, ParentElement, Render, Tooltip, Window, div,
};
use util::paths::FILE_ROW_COLUMN_DELIMITER;
use workspace::{StatusItemView, Workspace, item::ItemHandle};
@ -223,41 +223,39 @@ impl Render for CursorPosition {
let context = self.context.clone();
el
.py(DynamicSpacing::Base04.rems(cx))
.child(
Button::new("go-to-line-column", text)
.label_size(LabelSize::Small)
.on_click(cx.listener(|this, _, window, cx| {
if let Some(workspace) = this.workspace.upgrade() {
workspace.update(cx, |workspace, cx| {
if let Some(editor) = workspace
.active_item(cx)
.and_then(|item| item.act_as::<Editor>(cx))
&& let Some((_, buffer, _)) = editor.read(cx).active_excerpt(cx)
{
workspace.toggle_modal(window, cx, |window, cx| {
crate::GoToLine::new(editor, buffer, window, cx)
})
}
});
}
}))
.tooltip(move |window, cx| match context.as_ref() {
Some(context) => Tooltip::for_action_in(
"Go to Line/Column",
&editor::actions::ToggleGoToLine,
context,
window,
cx,
),
None => Tooltip::for_action(
"Go to Line/Column",
&editor::actions::ToggleGoToLine,
window,
cx,
),
}),
el.py(DynamicSpacing::Base04.rems(cx)).child(
Button::new("go-to-line-column", text)
.label_size(LabelSize::Small)
.on_click(cx.listener(|this, _, window, cx| {
if let Some(workspace) = this.workspace.upgrade() {
workspace.update(cx, |workspace, cx| {
if let Some(editor) = workspace
.active_item(cx)
.and_then(|item| item.act_as::<Editor>(cx))
&& let Some((_, buffer, _)) = editor.read(cx).active_excerpt(cx)
{
workspace.toggle_modal(window, cx, |window, cx| {
crate::GoToLine::new(editor, buffer, window, cx)
})
}
});
}
}))
.tooltip(move |window, cx| match context.as_ref() {
Some(context) => Tooltip::for_action_in(
"Go to Line/Column",
&editor::actions::ToggleGoToLine,
context,
window,
cx,
),
None => Tooltip::for_action(
"Go to Line/Column",
&editor::actions::ToggleGoToLine,
window,
cx,
),
}),
)
})
}

View file

@ -77,11 +77,9 @@ impl Render for ImageInfo {
.to_string(),
);
div()
.py(DynamicSpacing::Base04.rems(cx))
.child(
Button::new("image-metadata", components.join("")).label_size(LabelSize::Small),
)
div().py(DynamicSpacing::Base04.rems(cx)).child(
Button::new("image-metadata", components.join("")).label_size(LabelSize::Small),
)
}
}

View file

@ -1,6 +1,7 @@
use editor::{Editor, EditorSettings};
use gpui::{
Context, Entity, IntoElement, ParentElement, Render, Styled, Subscription, WeakEntity, Window, div,
Context, Entity, IntoElement, ParentElement, Render, Styled, Subscription, WeakEntity, Window,
div,
};
use language::LanguageName;
use settings::Settings as _;
@ -54,22 +55,20 @@ impl Render for ActiveBufferLanguage {
"Unknown".to_string()
};
el
.py(DynamicSpacing::Base04.rems(cx))
.child(
Button::new("change-language", active_language_text)
.label_size(LabelSize::Small)
.on_click(cx.listener(|this, _, window, cx| {
if let Some(workspace) = this.workspace.upgrade() {
workspace.update(cx, |workspace, cx| {
LanguageSelector::toggle(workspace, window, cx)
});
}
}))
.tooltip(|window, cx| {
Tooltip::for_action("Select Language", &Toggle, window, cx)
}),
)
el.py(DynamicSpacing::Base04.rems(cx)).child(
Button::new("change-language", active_language_text)
.label_size(LabelSize::Small)
.on_click(cx.listener(|this, _, window, cx| {
if let Some(workspace) = this.workspace.upgrade() {
workspace.update(cx, |workspace, cx| {
LanguageSelector::toggle(workspace, window, cx)
});
}
}))
.tooltip(|window, cx| {
Tooltip::for_action("Select Language", &Toggle, window, cx)
}),
)
})
}
}

View file

@ -1007,28 +1007,26 @@ impl Render for LspTool {
let lsp_tool = cx.entity();
div()
.py(DynamicSpacing::Base04.rems(cx))
.child(
PopoverMenu::new("lsp-tool")
.menu(move |_, cx| lsp_tool.read(cx).lsp_menu.clone())
.anchor(Corner::BottomLeft)
.with_handle(self.popover_menu_handle.clone())
.trigger_with_tooltip(
IconButton::new("zed-lsp-tool-button", IconName::BoltOutlined)
.when_some(indicator, IconButton::indicator)
.icon_size(IconSize::Small)
.indicator_border_color(Some(cx.theme().colors().status_bar_background)),
move |window, cx| {
Tooltip::with_meta(
"Language Servers",
Some(&ToggleMenu),
description,
window,
cx,
)
},
),
)
div().py(DynamicSpacing::Base04.rems(cx)).child(
PopoverMenu::new("lsp-tool")
.menu(move |_, cx| lsp_tool.read(cx).lsp_menu.clone())
.anchor(Corner::BottomLeft)
.with_handle(self.popover_menu_handle.clone())
.trigger_with_tooltip(
IconButton::new("zed-lsp-tool-button", IconName::BoltOutlined)
.when_some(indicator, IconButton::indicator)
.icon_size(IconSize::Small)
.indicator_border_color(Some(cx.theme().colors().status_bar_background)),
move |window, cx| {
Tooltip::with_meta(
"Language Servers",
Some(&ToggleMenu),
description,
window,
cx,
)
},
),
)
}
}

View file

@ -21,23 +21,21 @@ impl Render for SearchButton {
return button.w_0().invisible();
}
button
.py(DynamicSpacing::Base04.rems(cx))
.child(
IconButton::new("project-search-indicator", SEARCH_ICON)
.icon_size(IconSize::Small)
.tooltip(|window, cx| {
Tooltip::for_action(
"Project Search",
&workspace::DeploySearch::default(),
window,
cx,
)
})
.on_click(cx.listener(|_this, _, window, cx| {
window.dispatch_action(Box::new(workspace::DeploySearch::default()), cx);
})),
)
button.py(DynamicSpacing::Base04.rems(cx)).child(
IconButton::new("project-search-indicator", SEARCH_ICON)
.icon_size(IconSize::Small)
.tooltip(|window, cx| {
Tooltip::for_action(
"Project Search",
&workspace::DeploySearch::default(),
window,
cx,
)
})
.on_click(cx.listener(|_this, _, window, cx| {
window.dispatch_action(Box::new(workspace::DeploySearch::default()), cx);
})),
)
}
}

View file

@ -2,12 +2,15 @@ use std::{path::Path, sync::Arc};
use editor::Editor;
use gpui::{
AsyncWindowContext, Context, Entity, IntoElement, ParentElement, Render, Styled, Subscription, Task,
WeakEntity, Window, div,
AsyncWindowContext, Context, Entity, IntoElement, ParentElement, Render, Styled, Subscription,
Task, WeakEntity, Window, div,
};
use language::{Buffer, BufferEvent, LanguageName, Toolchain};
use project::{Project, ProjectPath, WorktreeId, toolchain_store::ToolchainStoreEvent};
use ui::{Button, ButtonCommon, Clickable, DynamicSpacing, FluentBuilder, LabelSize, SharedString, Tooltip};
use ui::{
Button, ButtonCommon, Clickable, DynamicSpacing, FluentBuilder, LabelSize, SharedString,
Tooltip,
};
use util::maybe;
use workspace::{StatusItemView, Workspace, item::ItemHandle};
@ -219,20 +222,18 @@ impl Render for ActiveToolchain {
fn render(&mut self, _window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement {
div().when_some(self.active_toolchain.as_ref(), |el, active_toolchain| {
let term = self.term.clone();
el
.py(DynamicSpacing::Base04.rems(cx))
.child(
Button::new("change-toolchain", active_toolchain.name.clone())
.label_size(LabelSize::Small)
.on_click(cx.listener(|this, _, window, cx| {
if let Some(workspace) = this.workspace.upgrade() {
workspace.update(cx, |workspace, cx| {
ToolchainSelector::toggle(workspace, window, cx)
});
}
}))
.tooltip(Tooltip::text(format!("Select {}", &term))),
)
el.py(DynamicSpacing::Base04.rems(cx)).child(
Button::new("change-toolchain", active_toolchain.name.clone())
.label_size(LabelSize::Small)
.on_click(cx.listener(|this, _, window, cx| {
if let Some(workspace) = this.workspace.upgrade() {
workspace.update(cx, |workspace, cx| {
ToolchainSelector::toggle(workspace, window, cx)
});
}
}))
.tooltip(Tooltip::text(format!("Select {}", &term))),
)
})
}
}

View file

@ -116,7 +116,7 @@ impl Render for ModeIndicator {
Label::new(label)
.size(LabelSize::Small)
.line_height_style(LineHeightStyle::UiLabel)
.into_any_element()
.into_any_element(),
)
.into_any_element()
}