summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-07-26 18:52:31 -0400
committerGitHub <noreply@github.com>2023-07-26 22:52:31 +0000
commit56e3daa19b1a0718bbcea2beae737ce8845ceac2 (patch)
tree408138bea1dc2641b6f2ce75a6497322d27222b8 /cli/lsp/language_server.rs
parent0e4d6d41ad64b89ab72d87a778d1bf3e516efabc (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.rs17
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();
}