diff options
Diffstat (limited to 'cli/lsp/documents.rs')
-rw-r--r-- | cli/lsp/documents.rs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index 30f419249..92c2e0a3b 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -1183,9 +1183,9 @@ impl Documents { dependencies.as_ref().and_then(|d| d.deps.get(&specifier)) { if let Some(specifier) = dep.maybe_type.maybe_specifier() { - results.push(self.resolve_dependency(specifier, maybe_npm)); + results.push(self.resolve_dependency(specifier, maybe_npm, referrer)); } else if let Some(specifier) = dep.maybe_code.maybe_specifier() { - results.push(self.resolve_dependency(specifier, maybe_npm)); + results.push(self.resolve_dependency(specifier, maybe_npm, referrer)); } else { results.push(None); } @@ -1193,11 +1193,15 @@ impl Documents { .resolve_imports_dependency(&specifier) .and_then(|r| r.maybe_specifier()) { - results.push(self.resolve_dependency(specifier, maybe_npm)); + results.push(self.resolve_dependency(specifier, maybe_npm, referrer)); } else if let Ok(npm_req_ref) = NpmPackageReqReference::from_str(&specifier) { - results.push(node_resolve_npm_req_ref(npm_req_ref, maybe_npm)); + results.push(node_resolve_npm_req_ref( + npm_req_ref, + maybe_npm, + referrer, + )); } else { results.push(None); } @@ -1528,6 +1532,7 @@ impl Documents { &self, specifier: &ModuleSpecifier, maybe_npm: Option<&StateNpmSnapshot>, + referrer: &ModuleSpecifier, ) -> Option<(ModuleSpecifier, MediaType)> { if let Some(module_name) = specifier.as_str().strip_prefix("node:") { if deno_node::is_builtin_node_module(module_name) { @@ -1539,7 +1544,7 @@ impl Documents { } if let Ok(npm_ref) = NpmPackageReqReference::from_specifier(specifier) { - return node_resolve_npm_req_ref(npm_ref, maybe_npm); + return node_resolve_npm_req_ref(npm_ref, maybe_npm, referrer); } let doc = self.get(specifier)?; let maybe_module = doc.maybe_esm_module().and_then(|r| r.as_ref().ok()); @@ -1548,7 +1553,7 @@ impl Documents { if let Some(specifier) = maybe_types_dependency.and_then(|d| d.maybe_specifier()) { - self.resolve_dependency(specifier, maybe_npm) + self.resolve_dependency(specifier, maybe_npm, referrer) } else { let media_type = doc.media_type(); Some((doc.specifier().clone(), media_type)) @@ -1572,12 +1577,13 @@ impl Documents { fn node_resolve_npm_req_ref( npm_req_ref: NpmPackageReqReference, maybe_npm: Option<&StateNpmSnapshot>, + referrer: &ModuleSpecifier, ) -> Option<(ModuleSpecifier, MediaType)> { maybe_npm.map(|npm| { NodeResolution::into_specifier_and_media_type( npm .npm_resolver - .resolve_pkg_folder_from_deno_module_req(npm_req_ref.req()) + .resolve_pkg_folder_from_deno_module_req(npm_req_ref.req(), referrer) .ok() .and_then(|package_folder| { npm |