diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2024-05-09 20:22:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-09 20:22:27 +0100 |
commit | 439b3b8db97106be44bb5fde9573632c20ed4e95 (patch) | |
tree | 22c54102ccddecaa0209d128f71fb33fc891fe4e /cli/lsp/completions.rs | |
parent | f0e8ec01461519dddcb61f1b91b4455a354e38e6 (diff) |
refactor(lsp): unify caching into LspCache (#23746)
Diffstat (limited to 'cli/lsp/completions.rs')
-rw-r--r-- | cli/lsp/completions.rs | 47 |
1 files changed, 17 insertions, 30 deletions
diff --git a/cli/lsp/completions.rs b/cli/lsp/completions.rs index f9d2316ae..3f63d2857 100644 --- a/cli/lsp/completions.rs +++ b/cli/lsp/completions.rs @@ -799,41 +799,39 @@ fn get_workspace_completions( #[cfg(test)] mod tests { use super::*; - use crate::cache::GlobalHttpCache; use crate::cache::HttpCache; + use crate::lsp::cache::LspCache; use crate::lsp::documents::Documents; use crate::lsp::documents::LanguageId; use crate::lsp::search::tests::TestPackageSearchApi; use deno_core::resolve_url; use deno_graph::Range; use std::collections::HashMap; - use std::path::Path; - use std::sync::Arc; use test_util::TempDir; - fn mock_documents( - fixtures: &[(&str, &str, i32, LanguageId)], - source_fixtures: &[(&str, &str)], - location: &Path, + fn setup( + open_sources: &[(&str, &str, i32, LanguageId)], + fs_sources: &[(&str, &str)], ) -> Documents { - let cache = Arc::new(GlobalHttpCache::new( - location.to_path_buf(), - crate::cache::RealDenoCacheEnv, - )); - let mut documents = Documents::new(cache); - for (specifier, source, version, language_id) in fixtures { + let temp_dir = TempDir::new(); + let cache = LspCache::new(Some(temp_dir.uri())); + let mut documents = Documents::default(); + documents.update_config( + &Default::default(), + &Default::default(), + &cache, + &Default::default(), + ); + for (specifier, source, version, language_id) in open_sources { let specifier = resolve_url(specifier).expect("failed to create specifier"); documents.open(specifier, *version, *language_id, (*source).into()); } - let http_cache = GlobalHttpCache::new( - location.to_path_buf(), - crate::cache::RealDenoCacheEnv, - ); - for (specifier, source) in source_fixtures { + for (specifier, source) in fs_sources { let specifier = resolve_url(specifier).expect("failed to create specifier"); - http_cache + cache + .global() .set(&specifier, HashMap::default(), source.as_bytes()) .expect("could not cache file"); assert!( @@ -844,15 +842,6 @@ mod tests { documents } - fn setup( - temp_dir: &TempDir, - documents: &[(&str, &str, i32, LanguageId)], - sources: &[(&str, &str)], - ) -> Documents { - let location = temp_dir.path().join("deps"); - mock_documents(documents, sources, location.as_path()) - } - #[test] fn test_get_relative_specifiers() { let base = resolve_url("file:///a/b/c.ts").unwrap(); @@ -936,9 +925,7 @@ mod tests { character: 21, }, }; - let temp_dir = TempDir::new(); let documents = setup( - &temp_dir, &[ ( "file:///a/b/c.ts", |