lib.rs

 1pub mod assets;
 2pub mod editor;
 3pub mod file_finder;
 4pub mod fs;
 5pub mod language;
 6pub mod menus;
 7mod operation_queue;
 8pub mod rpc;
 9pub mod settings;
10mod sum_tree;
11#[cfg(any(test, feature = "test-support"))]
12pub mod test;
13pub mod theme;
14pub mod theme_selector;
15mod time;
16mod util;
17pub mod workspace;
18pub mod worktree;
19
20pub use settings::Settings;
21
22use parking_lot::Mutex;
23use postage::watch;
24use std::sync::Arc;
25use zrpc::ForegroundRouter;
26
27pub struct AppState {
28    pub settings_tx: Arc<Mutex<watch::Sender<Settings>>>,
29    pub settings: watch::Receiver<Settings>,
30    pub languages: Arc<language::LanguageRegistry>,
31    pub themes: Arc<settings::ThemeRegistry>,
32    pub rpc_router: Arc<ForegroundRouter>,
33    pub rpc: rpc::Client,
34    pub fs: Arc<dyn fs::Fs>,
35}
36
37pub fn init(cx: &mut gpui::MutableAppContext) {
38    cx.add_global_action("app:quit", quit);
39}
40
41fn quit(_: &(), cx: &mut gpui::MutableAppContext) {
42    cx.platform().quit();
43}