Add `importing-themes` feature flag to `theme2` crate

Marshall Bowers created

When this feature is set the `themes` module won't be compiled.
This allows us to run the `theme_importer` even when the `themes` module
has compile errors in it.

Change summary

crates/theme2/Cargo.toml         | 1 +
crates/theme2/src/registry.rs    | 4 +++-
crates/theme2/src/theme2.rs      | 6 ++++--
crates/theme_importer/Cargo.toml | 2 +-
4 files changed, 9 insertions(+), 4 deletions(-)

Detailed changes

crates/theme2/Cargo.toml 🔗

@@ -6,6 +6,7 @@ publish = false
 
 [features]
 default = ["stories"]
+importing-themes = []
 stories = ["dep:itertools"]
 test-support = [
     "gpui/test-support",

crates/theme2/src/registry.rs 🔗

@@ -83,7 +83,9 @@ impl Default for ThemeRegistry {
         };
 
         this.insert_theme_families([zed_pro_family()]);
-        // this.insert_user_theme_familes(crate::all_user_themes());
+
+        #[cfg(not(feature = "importing-themes"))]
+        this.insert_user_theme_familes(crate::all_user_themes());
 
         this
     }

crates/theme2/src/theme2.rs 🔗

@@ -6,7 +6,8 @@ mod registry;
 mod scale;
 mod settings;
 mod syntax;
-// mod themes;
+#[cfg(not(feature = "importing-themes"))]
+mod themes;
 mod user_theme;
 
 use std::sync::Arc;
@@ -20,7 +21,8 @@ pub use registry::*;
 pub use scale::*;
 pub use settings::*;
 pub use syntax::*;
-// pub use themes::*;
+#[cfg(not(feature = "importing-themes"))]
+pub use themes::*;
 pub use user_theme::*;
 
 use gpui::{AppContext, Hsla, SharedString};

crates/theme_importer/Cargo.toml 🔗

@@ -14,5 +14,5 @@ log.workspace = true
 rust-embed.workspace = true
 serde.workspace = true
 simplelog = "0.9"
-theme = { package = "theme2", path = "../theme2" }
+theme = { package = "theme2", path = "../theme2", features = ["importing-themes"] }
 uuid.workspace = true