diff options
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(); } |