freya_code_editor/
editor_theme.rs

1use freya_core::prelude::Color;
2
3#[derive(Clone, PartialEq)]
4pub struct EditorTheme {
5    pub background: Color,
6    pub gutter_selected: Color,
7    pub gutter_unselected: Color,
8    pub line_selected_background: Color,
9    pub cursor: Color,
10    pub highlight: Color,
11    pub text: Color,
12    pub whitespace: Color,
13}
14
15#[derive(Clone, PartialEq)]
16pub struct SyntaxTheme {
17    pub text: Color,
18    pub whitespace: Color,
19    pub attribute: Color,
20    pub boolean: Color,
21    pub comment: Color,
22    pub constant: Color,
23    pub constructor: Color,
24    pub escape: Color,
25    pub function: Color,
26    pub function_macro: Color,
27    pub function_method: Color,
28    pub keyword: Color,
29    pub label: Color,
30    pub module: Color,
31    pub number: Color,
32    pub operator: Color,
33    pub property: Color,
34    pub punctuation: Color,
35    pub punctuation_bracket: Color,
36    pub punctuation_delimiter: Color,
37    pub punctuation_special: Color,
38    pub string: Color,
39    pub string_escape: Color,
40    pub string_special: Color,
41    pub tag: Color,
42    pub text_literal: Color,
43    pub text_reference: Color,
44    pub text_title: Color,
45    pub text_uri: Color,
46    pub text_emphasis: Color,
47    pub type_: Color,
48    pub variable: Color,
49    pub variable_builtin: Color,
50    pub variable_parameter: Color,
51}
52
53impl Default for SyntaxTheme {
54    fn default() -> Self {
55        DEFAULT_SYNTAX_THEME
56    }
57}
58
59impl Default for EditorTheme {
60    fn default() -> Self {
61        DEFAULT_EDITOR_THEME
62    }
63}
64
65pub const DEFAULT_EDITOR_THEME: EditorTheme = EditorTheme {
66    background: Color::from_rgb(29, 32, 33),
67    gutter_selected: Color::from_rgb(235, 235, 235),
68    gutter_unselected: Color::from_rgb(135, 135, 135),
69    line_selected_background: Color::from_rgb(55, 55, 55),
70    cursor: Color::WHITE,
71    highlight: Color::from_rgb(80, 80, 80),
72    text: Color::WHITE,
73    whitespace: Color::from_af32rgb(0.2, 223, 191, 142),
74};
75
76pub const DEFAULT_SYNTAX_THEME: SyntaxTheme = SyntaxTheme {
77    text: Color::from_rgb(235, 219, 178),
78    whitespace: Color::from_af32rgb(0.2, 223, 191, 142),
79    attribute: Color::from_rgb(131, 165, 152),
80    boolean: Color::from_rgb(211, 134, 155),
81    comment: Color::from_rgb(146, 131, 116),
82    constant: Color::from_rgb(211, 134, 155),
83    constructor: Color::from_rgb(250, 189, 47),
84    escape: Color::from_rgb(254, 128, 25),
85    function: Color::from_rgb(152, 192, 124),
86    function_macro: Color::from_rgb(131, 165, 152),
87    function_method: Color::from_rgb(152, 192, 124),
88    keyword: Color::from_rgb(251, 73, 52),
89    label: Color::from_rgb(211, 134, 155),
90    module: Color::from_rgb(250, 189, 47),
91    number: Color::from_rgb(211, 134, 155),
92    operator: Color::from_rgb(104, 157, 96),
93    property: Color::from_rgb(152, 192, 124),
94    punctuation: Color::from_rgb(104, 157, 96),
95    punctuation_bracket: Color::from_rgb(254, 128, 25),
96    punctuation_delimiter: Color::from_rgb(104, 157, 96),
97    punctuation_special: Color::from_rgb(131, 165, 152),
98    string: Color::from_rgb(184, 187, 38),
99    string_escape: Color::from_rgb(254, 128, 25),
100    string_special: Color::from_rgb(184, 187, 38),
101    tag: Color::from_rgb(131, 165, 152),
102    text_literal: Color::from_rgb(235, 219, 178),
103    text_reference: Color::from_rgb(131, 165, 152),
104    text_title: Color::from_rgb(250, 189, 47),
105    text_uri: Color::from_rgb(104, 157, 96),
106    text_emphasis: Color::from_rgb(235, 219, 178),
107    type_: Color::from_rgb(250, 189, 47),
108    variable: Color::from_rgb(235, 219, 178),
109    variable_builtin: Color::from_rgb(211, 134, 155),
110    variable_parameter: Color::from_rgb(235, 219, 178),
111};