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