diff options
Diffstat (limited to 'cli/lsp/config.rs')
-rw-r--r-- | cli/lsp/config.rs | 93 |
1 files changed, 1 insertions, 92 deletions
diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs index 0dbfd7589..5ddc41cb2 100644 --- a/cli/lsp/config.rs +++ b/cli/lsp/config.rs @@ -726,53 +726,6 @@ impl WorkspaceSettings { } } -#[derive(Debug, Clone, Default)] -pub struct ConfigSnapshot { - pub client_capabilities: ClientCapabilities, - pub settings: Settings, - pub workspace_folders: Vec<(ModuleSpecifier, lsp::WorkspaceFolder)>, - pub tree: ConfigTree, -} - -impl ConfigSnapshot { - pub fn workspace_settings_for_specifier( - &self, - specifier: &ModuleSpecifier, - ) -> &WorkspaceSettings { - self.settings.get_for_specifier(specifier).0 - } - - /// Determine if the provided specifier is enabled or not. - pub fn specifier_enabled(&self, specifier: &ModuleSpecifier) -> bool { - let config_file = self.tree.config_file_for_specifier(specifier); - if let Some(cf) = config_file { - if let Ok(files) = cf.to_files_config() { - if !files.matches_specifier(specifier) { - return false; - } - } - } - self - .settings - .specifier_enabled(specifier) - .unwrap_or_else(|| config_file.is_some()) - } - - pub fn specifier_enabled_for_test( - &self, - specifier: &ModuleSpecifier, - ) -> bool { - if let Some(cf) = self.tree.config_file_for_specifier(specifier) { - if let Some(options) = cf.to_test_config().ok().flatten() { - if !options.files.matches_specifier(specifier) { - return false; - } - } - } - self.specifier_enabled(specifier) - } -} - #[derive(Debug, Default, Clone)] pub struct Settings { pub unscoped: WorkspaceSettings, @@ -982,15 +935,6 @@ impl Config { self.workspace_folders.first().map(|p| &p.0) } - pub fn snapshot(&self) -> Arc<ConfigSnapshot> { - Arc::new(ConfigSnapshot { - client_capabilities: self.client_capabilities.clone(), - settings: self.settings.clone(), - workspace_folders: self.workspace_folders.clone(), - tree: self.tree.clone(), - }) - } - pub fn specifier_enabled(&self, specifier: &ModuleSpecifier) -> bool { let config_file = self.tree.config_file_for_specifier(specifier); if let Some(cf) = config_file { @@ -1805,8 +1749,7 @@ mod tests { .unwrap(), vec![], ); - let config_snapshot = config.snapshot(); - assert!(config_snapshot.specifier_enabled(&specifier)); + assert!(config.specifier_enabled(&specifier)); } #[test] @@ -1822,9 +1765,6 @@ mod tests { config.set_workspace_settings(workspace_settings, vec![]); assert!(config.specifier_enabled(&specifier_a)); assert!(!config.specifier_enabled(&specifier_b)); - let config_snapshot = config.snapshot(); - assert!(config_snapshot.specifier_enabled(&specifier_a)); - assert!(!config_snapshot.specifier_enabled(&specifier_b)); } #[test] @@ -2146,35 +2086,4 @@ mod tests { !config.specifier_enabled_for_test(&root_uri.join("mod2.ts").unwrap()) ); } - - #[tokio::test] - async fn config_snapshot_specifier_enabled_for_test() { - let root_uri = resolve_url("file:///root/").unwrap(); - let mut config = Config::new_with_roots(vec![root_uri.clone()]); - config.settings.unscoped.enable = Some(true); - config - .tree - .inject_config_file( - ConfigFile::new( - &json!({ - "exclude": ["mod2.ts"], - "test": { - "exclude": ["mod3.ts"], - }, - }) - .to_string(), - root_uri.join("deno.json").unwrap(), - &deno_config::ParseOptions::default(), - ) - .unwrap(), - ) - .await; - let config_snapshot = config.snapshot(); - assert!(config_snapshot - .specifier_enabled_for_test(&root_uri.join("mod1.ts").unwrap())); - assert!(!config_snapshot - .specifier_enabled_for_test(&root_uri.join("mod2.ts").unwrap())); - assert!(!config_snapshot - .specifier_enabled_for_test(&root_uri.join("mod3.ts").unwrap())); - } } |