1use std::sync::Arc;
2
3use crate::{
4 colors::{GitStatusColors, StatusColors, SystemColors, ThemeColors, ThemeStyles},
5 default_color_scales, Appearance, PlayerColors, SyntaxTheme, Theme, ThemeFamily,
6};
7
8fn zed_pro_daylight() -> Theme {
9 Theme {
10 id: "zed_pro_daylight".to_string(),
11 name: "Zed Pro Daylight".into(),
12 appearance: Appearance::Light,
13 styles: ThemeStyles {
14 system: SystemColors::default(),
15 colors: ThemeColors::default_light(),
16 status: StatusColors::default(),
17 git: GitStatusColors::default(),
18 player: PlayerColors::default_light(),
19 syntax: Arc::new(SyntaxTheme::default_light()),
20 },
21 }
22}
23
24pub(crate) fn zed_pro_moonlight() -> Theme {
25 Theme {
26 id: "zed_pro_moonlight".to_string(),
27 name: "Zed Pro Moonlight".into(),
28 appearance: Appearance::Dark,
29 styles: ThemeStyles {
30 system: SystemColors::default(),
31 colors: ThemeColors::default_dark(),
32 status: StatusColors::default(),
33 git: GitStatusColors::default(),
34 player: PlayerColors::default(),
35 syntax: Arc::new(SyntaxTheme::default_dark()),
36 },
37 }
38}
39
40pub fn zed_pro_family() -> ThemeFamily {
41 ThemeFamily {
42 id: "zed_pro".to_string(),
43 name: "Zed Pro".into(),
44 author: "Zed Team".into(),
45 themes: vec![zed_pro_daylight(), zed_pro_moonlight()],
46 scales: default_color_scales(),
47 }
48}
49
50impl Default for ThemeFamily {
51 fn default() -> Self {
52 zed_pro_family()
53 }
54}
55
56impl Default for Theme {
57 fn default() -> Self {
58 zed_pro_daylight()
59 }
60}