summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2024-04-30 02:41:19 +0100
committerGitHub <noreply@github.com>2024-04-30 02:41:19 +0100
commit5cae3439912ad60eb2866f3d4372a5fe4d0de957 (patch)
tree87e5e8ad3a7c3bb399277198146cd276f60220b1 /cli/lsp/language_server.rs
parent783533d2e354ad73356d7517b26293e48c10fc17 (diff)
refactor(lsp): move fields from Documents to LspResolver (#23585)
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs22
1 files changed, 12 insertions, 10 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index 07d3d8cb7..3a378d0ea 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -312,9 +312,8 @@ impl LanguageServer {
.show_message(MessageType::WARNING, err);
}
let mut inner = self.0.write().await;
- let lockfile = inner.config.tree.root_lockfile().cloned();
- inner.documents.refresh_lockfile(lockfile);
- inner.refresh_npm_specifiers().await;
+ inner.refresh_resolver().await;
+ inner.refresh_documents_config().await;
inner.post_cache(result.mark).await;
}
Ok(Some(json!(true)))
@@ -687,7 +686,6 @@ 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;
@@ -810,8 +808,6 @@ impl Inner {
self.config.update_capabilities(&params.capabilities);
}
- self.documents.initialize(&self.config);
-
if let Err(e) = self
.ts_server
.start(self.config.internal_inspect().to_address())
@@ -1016,10 +1012,14 @@ 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,6 +1030,7 @@ impl Inner {
self.documents.update_config(
&self.config,
&self.resolver,
+ self.deps_http_cache.clone(),
&self.workspace_files,
);
@@ -1169,6 +1170,7 @@ 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();
@@ -1217,6 +1219,7 @@ 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 {
@@ -1518,10 +1521,7 @@ impl Inner {
if let Ok(jsr_req_ref) =
JsrPackageReqReference::from_specifier(specifier)
{
- if let Some(url) = self
- .documents
- .get_jsr_resolver()
- .jsr_to_registry_url(&jsr_req_ref)
+ if let Some(url) = self.resolver.jsr_to_registry_url(&jsr_req_ref)
{
result = format!("{result} (<{url}>)");
}
@@ -2991,6 +2991,7 @@ 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();
@@ -3125,6 +3126,7 @@ 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();