1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, PartialEq, Default)]
5pub(crate) struct TaskSettings {
6 pub(crate) show_status_indicator: bool,
7}
8
9/// Task-related settings.
10#[derive(Serialize, Deserialize, PartialEq, Default, Clone, JsonSchema)]
11pub(crate) struct TaskSettingsContent {
12 /// Whether to show task status indicator in the status bar. Default: true
13 show_status_indicator: Option<bool>,
14}
15
16impl settings::Settings for TaskSettings {
17 const KEY: Option<&'static str> = Some("task");
18
19 type FileContent = TaskSettingsContent;
20
21 fn load(
22 default_value: &Self::FileContent,
23 user_values: &[&Self::FileContent],
24 _: &mut gpui::AppContext,
25 ) -> gpui::Result<Self>
26 where
27 Self: Sized,
28 {
29 let this = Self::json_merge(default_value, user_values)?;
30 Ok(Self {
31 show_status_indicator: this.show_status_indicator.unwrap_or(true),
32 })
33 }
34}