terminal: Add coloration to task icons based on status (#12066)

Release Notes:

- Fixes: ([#11968](https://github.com/zed-industries/zed/issues/11968)).

Adds colouration to task icons in terminal based off status


![image](https://github.com/zed-industries/zed/assets/147033096/32578358-3da8-4082-9212-637dcd346576)
This commit is contained in:
versecafe 2024-05-20 18:26:04 -05:00 committed by GitHub
parent 42ea2be1b4
commit f2357c71e1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -786,23 +786,23 @@ impl Item for TerminalView {
fn tab_content(&self, params: TabContentParams, cx: &WindowContext) -> AnyElement {
let terminal = self.terminal().read(cx);
let title = terminal.title(true);
let icon = match terminal.task() {
let (icon, icon_color) = match terminal.task() {
Some(terminal_task) => match &terminal_task.status {
TaskStatus::Unknown => IconName::ExclamationTriangle,
TaskStatus::Running => IconName::Play,
TaskStatus::Unknown => (IconName::ExclamationTriangle, Color::Warning),
TaskStatus::Running => (IconName::Play, Color::Default),
TaskStatus::Completed { success } => {
if *success {
IconName::Check
(IconName::Check, Color::Success)
} else {
IconName::XCircle
(IconName::XCircle, Color::Error)
}
}
},
None => IconName::Terminal,
None => (IconName::Terminal, Color::Muted),
};
h_flex()
.gap_2()
.child(Icon::new(icon))
.child(Icon::new(icon).color(icon_color))
.child(Label::new(title).color(if params.selected {
Color::Default
} else {