summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-04-17 15:36:23 -0400
committerGitHub <noreply@github.com>2023-04-17 15:36:23 -0400
commitd2d62b6312f9c09f91e26acd0b4d88b3ddcf94cf (patch)
treef2f5f0eb14e76e38876b3c219c859405fa664aef /cli/lsp/language_server.rs
parent559a61b879366c01fbbc078c03743cd836189ae7 (diff)
refactor(npm): add CliNodeResolver (#18742)
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs42
1 files changed, 23 insertions, 19 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index 3f395f410..239ff8a6e 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -78,6 +78,7 @@ use crate::file_fetcher::FileFetcher;
use crate::graph_util;
use crate::http_util::HttpClient;
use crate::lsp::urls::LspUrlKind;
+use crate::node::CliNodeResolver;
use crate::npm::create_npm_fs_resolver;
use crate::npm::CliNpmRegistryApi;
use crate::npm::NpmCache;
@@ -101,6 +102,7 @@ pub struct StateSnapshot {
pub cache_metadata: cache::CacheMetadata,
pub documents: Documents,
pub maybe_import_map: Option<Arc<ImportMap>>,
+ pub maybe_node_resolver: Option<Arc<CliNodeResolver>>,
pub maybe_npm_resolver: Option<Arc<NpmPackageResolver>>,
}
@@ -695,30 +697,32 @@ impl Inner {
}
pub fn snapshot(&self) -> Arc<StateSnapshot> {
+ // create a new snapshotted npm resolution and resolver
+ let npm_resolution = Arc::new(NpmResolution::new(
+ self.npm_api.clone(),
+ self.npm_resolution.snapshot(),
+ None,
+ ));
+ let npm_resolver = Arc::new(NpmPackageResolver::new(
+ npm_resolution.clone(),
+ create_npm_fs_resolver(
+ self.npm_cache.clone(),
+ &ProgressBar::new(ProgressBarStyle::TextOnly),
+ self.npm_api.base_url().clone(),
+ npm_resolution.clone(),
+ None,
+ ),
+ None,
+ ));
+ let node_resolver =
+ Arc::new(CliNodeResolver::new(npm_resolution, npm_resolver.clone()));
Arc::new(StateSnapshot {
assets: self.assets.snapshot(),
cache_metadata: self.cache_metadata.clone(),
documents: self.documents.clone(),
maybe_import_map: self.maybe_import_map.clone(),
- maybe_npm_resolver: Some({
- // create a new snapshotted npm resolution and resolver
- let resolution = Arc::new(NpmResolution::new(
- self.npm_api.clone(),
- self.npm_resolution.snapshot(),
- None,
- ));
- Arc::new(NpmPackageResolver::new(
- resolution.clone(),
- create_npm_fs_resolver(
- self.npm_cache.clone(),
- &ProgressBar::new(ProgressBarStyle::TextOnly),
- self.npm_api.base_url().clone(),
- resolution,
- None,
- ),
- None,
- ))
- }),
+ maybe_node_resolver: Some(node_resolver),
+ maybe_npm_resolver: Some(npm_resolver),
})
}