summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs27
1 files changed, 21 insertions, 6 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index b108eb54e..c22752e9e 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -121,6 +121,7 @@ use crate::npm::CliNpmResolverCreateOptions;
use crate::npm::CliNpmResolverManagedCreateOptions;
use crate::npm::CliNpmResolverManagedPackageJsonInstallerOption;
use crate::npm::CliNpmResolverManagedSnapshotOption;
+use crate::resolver::CliNodeResolver;
use crate::tools::fmt::format_file;
use crate::tools::fmt::format_parsed_source;
use crate::tools::upgrade::check_for_upgrades_for_lsp;
@@ -146,7 +147,7 @@ struct LspNpmServices {
/// Npm's search api.
search_api: CliNpmSearchApi,
/// Node resolver.
- node_resolver: Option<Arc<NodeResolver>>,
+ node_resolver: Option<Arc<CliNodeResolver>>,
/// Resolver for npm packages.
resolver: Option<Arc<dyn CliNpmResolver>>,
}
@@ -171,7 +172,7 @@ pub struct LanguageServer(Arc<tokio::sync::RwLock<Inner>>, CancellationToken);
#[derive(Clone, Debug)]
pub struct StateNpmSnapshot {
- pub node_resolver: Arc<NodeResolver>,
+ pub node_resolver: Arc<CliNodeResolver>,
pub npm_resolver: Arc<dyn CliNpmResolver>,
}
@@ -760,10 +761,18 @@ impl Inner {
.map(|resolver| resolver.clone_snapshotted())
.map(|resolver| {
let fs = Arc::new(deno_fs::RealFs);
- let node_resolver =
- Arc::new(NodeResolver::new(fs, resolver.clone().into_npm_resolver()));
- StateNpmSnapshot {
+ let node_resolver = Arc::new(NodeResolver::new(
+ fs.clone(),
+ resolver.clone().into_npm_resolver(),
+ ));
+ let cli_node_resolver = Arc::new(CliNodeResolver::new(
+ None,
+ fs,
node_resolver,
+ resolver.clone(),
+ ));
+ StateNpmSnapshot {
+ node_resolver: cli_node_resolver,
npm_resolver: resolver,
}
});
@@ -907,9 +916,15 @@ impl Inner {
self.config.maybe_node_modules_dir_path().cloned(),
)
.await;
- self.npm.node_resolver = Some(Arc::new(NodeResolver::new(
+ let node_resolver = Arc::new(NodeResolver::new(
Arc::new(deno_fs::RealFs),
npm_resolver.clone().into_npm_resolver(),
+ ));
+ self.npm.node_resolver = Some(Arc::new(CliNodeResolver::new(
+ None,
+ Arc::new(deno_fs::RealFs),
+ node_resolver,
+ npm_resolver.clone(),
)));
self.npm.resolver = Some(npm_resolver);