diff options
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r-- | cli/lsp/language_server.rs | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 3a378d0ea..07d3d8cb7 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -312,8 +312,9 @@ impl LanguageServer { .show_message(MessageType::WARNING, err); } let mut inner = self.0.write().await; - inner.refresh_resolver().await; - inner.refresh_documents_config().await; + let lockfile = inner.config.tree.root_lockfile().cloned(); + inner.documents.refresh_lockfile(lockfile); + inner.refresh_npm_specifiers().await; inner.post_cache(result.mark).await; } Ok(Some(json!(true))) @@ -686,6 +687,7 @@ impl Inner { .map(|c| c as Arc<dyn HttpCache>) .unwrap_or(global_cache); self.deps_http_cache = cache.clone(); + self.documents.set_cache(cache.clone()); self.cache_metadata.set_cache(cache); self.url_map.set_cache(maybe_local_cache); self.maybe_global_cache_path = new_cache_path; @@ -808,6 +810,8 @@ impl Inner { self.config.update_capabilities(¶ms.capabilities); } + self.documents.initialize(&self.config); + if let Err(e) = self .ts_server .start(self.config.internal_inspect().to_address()) @@ -1012,14 +1016,10 @@ impl Inner { } } } - } - - async fn refresh_resolver(&mut self) { self.resolver = self .resolver .with_new_config( &self.config, - self.deps_http_cache.clone(), self.maybe_global_cache_path.as_deref(), Some(&self.http_client), ) @@ -1030,7 +1030,6 @@ impl Inner { self.documents.update_config( &self.config, &self.resolver, - self.deps_http_cache.clone(), &self.workspace_files, ); @@ -1170,7 +1169,6 @@ impl Inner { lsp_warn!("Error updating registries: {:#}", err); self.client.show_message(MessageType::WARNING, err); } - self.refresh_resolver().await; self.refresh_documents_config().await; self.diagnostics_server.invalidate_all(); self.send_diagnostics_update(); @@ -1219,7 +1217,6 @@ impl Inner { self.workspace_files_hash = 0; self.refresh_workspace_files(); self.refresh_config_tree().await; - self.refresh_resolver().await; deno_config_changes.extend(changes.iter().filter_map(|(s, e)| { self.config.tree.watched_file_type(s).and_then(|t| { let configuration_type = match t.1 { @@ -1521,7 +1518,10 @@ impl Inner { if let Ok(jsr_req_ref) = JsrPackageReqReference::from_specifier(specifier) { - if let Some(url) = self.resolver.jsr_to_registry_url(&jsr_req_ref) + if let Some(url) = self + .documents + .get_jsr_resolver() + .jsr_to_registry_url(&jsr_req_ref) { result = format!("{result} (<{url}>)"); } @@ -2991,7 +2991,6 @@ impl tower_lsp::LanguageServer for LanguageServer { { let mut ls = self.0.write().await; init_log_file(ls.config.log_file()); - ls.refresh_resolver().await; ls.refresh_documents_config().await; ls.diagnostics_server.invalidate_all(); ls.send_diagnostics_update(); @@ -3126,7 +3125,6 @@ impl tower_lsp::LanguageServer for LanguageServer { let mut ls = self.0.write().await; ls.refresh_workspace_files(); ls.refresh_config_tree().await; - ls.refresh_resolver().await; ls.refresh_documents_config().await; ls.diagnostics_server.invalidate_all(); ls.send_diagnostics_update(); |