From 8be844a13f7684cd845276faed0316f9313d0105 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 17 Feb 2023 09:44:27 -0800 Subject: [PATCH] Add test that loads all bundled languages --- crates/language/src/language.rs | 18 ++++++++++++++++++ crates/zed/src/zed.rs | 15 ++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/crates/language/src/language.rs b/crates/language/src/language.rs index c84fc109ff431946db52a0fa725332622ff8c861..cb981b5e4ebfdc26a46546c089fc7a36f0a71fea 100644 --- a/crates/language/src/language.rs +++ b/crates/language/src/language.rs @@ -1017,6 +1017,24 @@ impl Language { ))?; } + for disabled_scope_name in self + .config + .brackets + .disabled_scopes_by_bracket_ix + .iter() + .flatten() + { + if !override_configs_by_id + .values() + .any(|(scope_name, _)| scope_name == disabled_scope_name) + { + Err(anyhow!( + "language {:?} has overrides in config not in query: {disabled_scope_name:?}", + self.config.name + ))?; + } + } + for (name, override_config) in override_configs_by_id.values_mut() { override_config.disabled_bracket_ixs = self .config diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index 16b5413fda2fe759e0f522e92fac0f074476df41..95790596bf1f2789ff860ce635b18fcc0451bc87 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -701,8 +701,9 @@ mod tests { use assets::Assets; use editor::{scroll::autoscroll::Autoscroll, DisplayPoint, Editor}; use gpui::{ - executor::Deterministic, AssetSource, MutableAppContext, TestAppContext, ViewHandle, + executor::Deterministic, AssetSource, MutableAppContext, Task, TestAppContext, ViewHandle, }; + use language::LanguageRegistry; use project::{Project, ProjectPath}; use serde_json::json; use std::{ @@ -1886,6 +1887,18 @@ mod tests { assert!(has_default_theme); } + #[gpui::test] + fn test_bundled_languages(cx: &mut MutableAppContext) { + let mut languages = LanguageRegistry::new(Task::ready(())); + languages.set_executor(cx.background().clone()); + let languages = Arc::new(languages); + languages::init(languages.clone()); + for name in languages.language_names() { + languages.language_for_name(&name); + } + cx.foreground().run_until_parked(); + } + fn init(cx: &mut TestAppContext) -> Arc { cx.foreground().forbid_parking(); cx.update(|cx| {