summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-05-17 17:38:50 -0400
committerGitHub <noreply@github.com>2023-05-17 17:38:50 -0400
commit41f618a1df6bb8c66d7968ac64456139b9f4c197 (patch)
treedbcc67e009cf70099be82ea3774669e8aefc6023 /cli/lsp/language_server.rs
parentad223362451688c13a4441563210f58bdb046a78 (diff)
fix(npm): improved optional dependency support (#19135)
Note: If the package information has already been cached, then this requires running with `--reload` or for the registry information to be fetched some other way (ex. the cache busting). Closes #15544 --------- Co-authored-by: Bartek IwaƄczuk <biwanczuk@gmail.com>
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index e76ea0040..96329e4a1 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -10,6 +10,7 @@ use deno_core::serde_json::json;
use deno_core::serde_json::Value;
use deno_core::task::spawn;
use deno_core::ModuleSpecifier;
+use deno_npm::NpmSystemInfo;
use deno_runtime::deno_fs;
use deno_runtime::deno_node::NodeResolver;
use deno_runtime::deno_node::PackageJson;
@@ -467,6 +468,7 @@ fn create_lsp_structs(
registry_url.clone(),
resolution.clone(),
None,
+ NpmSystemInfo::default(),
);
(
api,
@@ -725,6 +727,7 @@ impl Inner {
self.npm_api.base_url().clone(),
npm_resolution,
None,
+ NpmSystemInfo::default(),
),
None,
));
@@ -1242,11 +1245,12 @@ impl Inner {
async fn refresh_npm_specifiers(&mut self) {
let package_reqs = self.documents.npm_package_reqs();
- if let Err(err) = self
- .npm_resolver
- .set_package_reqs((*package_reqs).clone())
- .await
- {
+ let npm_resolver = self.npm_resolver.clone();
+ // spawn to avoid the LSP's Send requirements
+ let handle = spawn(async move {
+ npm_resolver.set_package_reqs((*package_reqs).clone()).await
+ });
+ if let Err(err) = handle.await.unwrap() {
lsp_warn!("Could not set npm package requirements. {:#}", err);
}
}