ChangesList: a long file name ends in an ellipsis before the row's buttons
CI / site (push) Successful in 31s
CI / platforms (windows-latest) (push) Successful in 4m52s
CI / crate (push) Canceled after 0s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
ZacharyZhang-NYandClaude Opus 5.5 committed 2026-10-11 00:41:50 -04:00
1 parent 3eb4d346fe
commit bd014707fd
3 files changed
+50 -2

No files matched your search

+10 -2
View File
@@ -199,12 +199,16 @@ impl ChangesList {
.gap_2()
.child(
div()
.flex_none()
.min_w_0()
.text_color(colors.fg)
.debug_selector({
let path = file.path.clone();
move || format!("change-name-{path}")
})
.when(file.status == GitStatus::Deleted, |name| {
name.line_through()
})
.child(name),
.child(Ellipsis::new(name)),
)
.child(
div()
@@ -218,6 +222,10 @@ impl ChangesList {
div()
.flex_none()
.flex()
.debug_selector({
let path = file.path.clone();
move || format!("change-actions-{path}")
})
.child(action(
"open",
IconName::FileText,
+1
View File
@@ -5,6 +5,7 @@ use gpui::{
use super::DiffViewer;
mod narrow;
mod picking;
use crate::{forms, primitives::FocusNext, theme::Theme};
+39
View File
@@ -0,0 +1,39 @@
use gpui::{
Context, IntoElement, ParentElement, Render, TestAppContext, Window, div, prelude::*, px,
};
use crate::{lists::GitStatus, theme::Theme};
const LONG: &str = "developerID_application_certificate_for_signing.cer";
const NAME: &str = "change-name-developerID_application_certificate_for_signing.cer";
const ACTIONS: &str = "change-actions-developerID_application_certificate_for_signing.cer";
struct Narrow;
impl Render for Narrow {
fn render(&mut self, _: &mut Window, _: &mut Context<Self>) -> impl IntoElement {
let file = super::super::Changed {
path: LONG.into(),
status: GitStatus::Untracked,
lines: None,
};
div()
.w(px(260.0))
.child(super::super::ChangesList::new("narrow", [], []).untracked([file]))
}
}
/// A long name gives way before the row's buttons; it never runs under them.
#[gpui::test]
fn a_long_name_ends_before_the_buttons(cx: &mut TestAppContext) {
cx.update(Theme::init);
let (_, cx) = cx.add_window_view(|_, _| Narrow);
cx.run_until_parked();
let name = cx.debug_bounds(NAME).expect("the name");
let actions = cx.debug_bounds(ACTIONS).expect("the buttons");
assert!(
name.right() <= actions.left(),
"{name:?} runs into {actions:?}"
);
assert!(actions.right() <= px(260.0), "{actions:?}");
}