diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-07-26 18:52:31 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-26 22:52:31 +0000 |
commit | 56e3daa19b1a0718bbcea2beae737ce8845ceac2 (patch) | |
tree | 408138bea1dc2641b6f2ce75a6497322d27222b8 /cli/lsp/language_server.rs | |
parent | 0e4d6d41ad64b89ab72d87a778d1bf3e516efabc (diff) |
fix(lsp): handle import mapped `node:` specifier (#19956)
Closes https://github.com/denoland/vscode_deno/issues/805
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r-- | cli/lsp/language_server.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 3ac9610b3..2fef8cfa0 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -1290,7 +1290,7 @@ impl Inner { }) } - fn refresh_documents_config(&mut self) { + async fn refresh_documents_config(&mut self) { self.documents.update_config(UpdateDocumentConfigOptions { enabled_urls: self.config.enabled_urls(), document_preload_limit: self @@ -1303,6 +1303,10 @@ impl Inner { npm_registry_api: self.npm.api.clone(), npm_resolution: self.npm.resolution.clone(), }); + + // refresh the npm specifiers because it might have discovered + // a @types/node package and now's a good time to do that anyway + self.refresh_npm_specifiers().await; } async fn shutdown(&self) -> LspResult<()> { @@ -1447,7 +1451,7 @@ impl Inner { } self.recreate_npm_services_if_necessary().await; - self.refresh_documents_config(); + self.refresh_documents_config().await; self.diagnostics_server.invalidate_all(); self.send_diagnostics_update(); @@ -1566,8 +1570,7 @@ impl Inner { if touched { self.recreate_npm_services_if_necessary().await; - self.refresh_documents_config(); - self.refresh_npm_specifiers().await; + self.refresh_documents_config().await; self.diagnostics_server.invalidate_all(); self.ts_server.restart(self.snapshot()).await; self.send_diagnostics_update(); @@ -3007,7 +3010,7 @@ impl tower_lsp::LanguageServer for LanguageServer { { let mut ls = self.0.write().await; - ls.refresh_documents_config(); + ls.refresh_documents_config().await; ls.diagnostics_server.invalidate_all(); ls.send_diagnostics_update(); } @@ -3075,7 +3078,7 @@ impl tower_lsp::LanguageServer for LanguageServer { .map(|d| d.is_diagnosable()) .unwrap_or(false) { - ls.refresh_documents_config(); + ls.refresh_documents_config().await; ls.send_diagnostics_update(); ls.send_testing_update(); } @@ -3165,7 +3168,7 @@ impl tower_lsp::LanguageServer for LanguageServer { if self.refresh_specifiers_from_client().await { let mut ls = self.0.write().await; - ls.refresh_documents_config(); + ls.refresh_documents_config().await; ls.diagnostics_server.invalidate_all(); ls.send_diagnostics_update(); } |