diff --git a/Cargo.lock b/Cargo.lock index ebf2d4376c..fca454f1f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5060,8 +5060,11 @@ dependencies = [ "anyhow", "assets", "collections", + "fs", + "futures", "gpui", "json_comments", + "postage", "schemars", "serde", "serde_json", diff --git a/crates/language/src/buffer.rs b/crates/language/src/buffer.rs index 56aad18ead..a9af41bb23 100644 --- a/crates/language/src/buffer.rs +++ b/crates/language/src/buffer.rs @@ -40,7 +40,9 @@ use sum_tree::TreeMap; use text::operation_queue::OperationQueue; pub use text::{Buffer as TextBuffer, BufferSnapshot as TextBufferSnapshot, Operation as _, *}; use theme::SyntaxTheme; -use util::{RandomCharIter, TryFutureExt as _}; +#[cfg(any(test, feature = "test-support"))] +use util::RandomCharIter; +use util::TryFutureExt as _; #[cfg(any(test, feature = "test-support"))] pub use {tree_sitter_rust, tree_sitter_typescript}; diff --git a/crates/settings/Cargo.toml b/crates/settings/Cargo.toml index e8fb58cd61..64c906a833 100644 --- a/crates/settings/Cargo.toml +++ b/crates/settings/Cargo.toml @@ -14,10 +14,13 @@ test-support = [] assets = { path = "../assets" } collections = { path = "../collections" } gpui = { path = "../gpui" } +fs = { path = "../fs" } +anyhow = "1.0.38" +futures = "0.3" theme = { path = "../theme" } util = { path = "../util" } -anyhow = "1.0.38" json_comments = "0.2" +postage = { version = "0.4.1", features = ["futures-traits"] } schemars = "0.8" serde = { workspace = true } serde_json = { workspace = true } diff --git a/crates/settings/src/settings.rs b/crates/settings/src/settings.rs index 921b36051f..883d7694c7 100644 --- a/crates/settings/src/settings.rs +++ b/crates/settings/src/settings.rs @@ -1,4 +1,5 @@ mod keymap_file; +pub mod settings_file; use anyhow::Result; use gpui::{ diff --git a/crates/zed/src/settings_file.rs b/crates/settings/src/settings_file.rs similarity index 96% rename from crates/zed/src/settings_file.rs rename to crates/settings/src/settings_file.rs index 25bd065b47..f12f191041 100644 --- a/crates/zed/src/settings_file.rs +++ b/crates/settings/src/settings_file.rs @@ -1,14 +1,16 @@ +use fs::Fs; use futures::StreamExt; use gpui::{executor, MutableAppContext}; use postage::sink::Sink as _; use postage::{prelude::Stream, watch}; -use project::Fs; use serde::Deserialize; -use settings::{parse_json_with_comments, KeymapFileContent, Settings, SettingsFileContent}; + use std::{path::Path, sync::Arc, time::Duration}; use theme::ThemeRegistry; use util::ResultExt; +use crate::{parse_json_with_comments, KeymapFileContent, Settings, SettingsFileContent}; + #[derive(Clone)] pub struct WatchedJsonFile(pub watch::Receiver); @@ -77,7 +79,7 @@ pub fn watch_settings_file( pub fn keymap_updated(content: KeymapFileContent, cx: &mut MutableAppContext) { cx.clear_bindings(); - settings::KeymapFileContent::load_defaults(cx); + KeymapFileContent::load_defaults(cx); content.add_to_cx(cx).log_err(); } @@ -105,8 +107,8 @@ pub fn watch_keymap_file(mut file: WatchedJsonFile, cx: &mut #[cfg(test)] mod tests { use super::*; - use project::FakeFs; - use settings::{EditorSettings, SoftWrap}; + use crate::{EditorSettings, SoftWrap}; + use fs::FakeFs; #[gpui::test] async fn test_watch_settings_files(cx: &mut gpui::TestAppContext) { diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index 6c93ff5ba6..7dc30d34f5 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -32,13 +32,11 @@ use std::{env, ffi::OsStr, panic, path::PathBuf, sync::Arc, thread, time::Durati use terminal::terminal_container_view::{get_working_directory, TerminalContainer}; use fs::RealFs; +use settings::settings_file::{watch_keymap_file, watch_settings_file, WatchedJsonFile}; use theme::ThemeRegistry; use util::{ResultExt, TryFutureExt}; use workspace::{self, AppState, ItemHandle, NewFile, OpenPaths, Workspace}; -use zed::{ - self, build_window_options, initialize_workspace, languages, menus, - settings_file::{watch_keymap_file, watch_settings_file, WatchedJsonFile}, -}; +use zed::{self, build_window_options, initialize_workspace, languages, menus}; fn main() { let http = http::client(); diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index a2857f01dc..9012bc89e2 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -2,7 +2,6 @@ mod feedback; pub mod languages; pub mod menus; pub mod paths; -pub mod settings_file; #[cfg(any(test, feature = "test-support"))] pub mod test;