Skip to main content

editor/
app.rs

1//! App-owned configuration.
2
3use gpui::App;
4
5/// Configuration carried by the application. Import as `use editor::AppExt as _;`.
6pub trait AppExt {
7    /// Reads editor layout.
8    fn editor_layout(&self) -> crate::Layout;
9
10    /// Reads editor text size.
11    fn editor_text_size(&self) -> crate::TextSize;
12
13    /// Configures editor layout.
14    fn set_editor_layout(&mut self, layout: crate::Layout);
15
16    /// Sets editor zoom steps and limits, not an individual editor’s base size.
17    fn set_editor_text_size(&mut self, text_size: crate::TextSize);
18
19    /// Installs the image store used when pasting pictures.
20    fn set_image_store(&mut self, store: crate::ImageStore);
21
22    /// Returns the installed image store, or the default that keeps nothing.
23    fn image_store(&self) -> crate::ImageStore;
24
25    /// Overrides clipboard paste; returning `None` keeps the default behavior.
26    /// File drops are not passed to this handler.
27    fn set_paste_handler(&mut self, handler: crate::PasteHandler);
28
29    /// Adjusts every open document by the given points and refreshes windows.
30    fn adjust_editor_text_size(&mut self, points: f32);
31
32    /// Resets the shared adjustment to zero and refreshes windows.
33    fn reset_editor_text_size(&mut self);
34
35    /// Returns the shared adjustment from each document’s base size, in points.
36    fn editor_text_size_adjustment(&self) -> f32;
37}
38
39impl AppExt for App {
40    fn editor_layout(&self) -> crate::Layout {
41        crate::layout::Layout::of(self)
42    }
43
44    fn editor_text_size(&self) -> crate::TextSize {
45        crate::text_size::TextSize::of(self)
46    }
47
48    fn set_editor_layout(&mut self, layout: crate::Layout) {
49        crate::layout::set_layout(self, layout)
50    }
51
52    fn set_editor_text_size(&mut self, text_size: crate::TextSize) {
53        crate::text_size::set_text_size(self, text_size)
54    }
55
56    fn set_image_store(&mut self, store: crate::ImageStore) {
57        crate::editor::image::set_image_store(self, store)
58    }
59
60    fn image_store(&self) -> crate::ImageStore {
61        crate::editor::image::store(self)
62    }
63
64    fn set_paste_handler(&mut self, handler: crate::PasteHandler) {
65        self.set_global(crate::paste::Installed(handler));
66    }
67
68    fn adjust_editor_text_size(&mut self, points: f32) {
69        crate::text_size::adjust_text_size(self, points)
70    }
71
72    fn reset_editor_text_size(&mut self) {
73        crate::text_size::reset_text_size(self)
74    }
75
76    fn editor_text_size_adjustment(&self) -> f32 {
77        crate::text_size::text_size_adjustment(self)
78    }
79}