diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2024-10-01 22:55:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-01 22:55:02 +0100 |
commit | 3881b7173445ab7f68ec94d5dedbb1cb1c1978ec (patch) | |
tree | 2683c9955f19c9e1d19af6a41ce75cab5b3570fa /cli/lsp/resolver.rs | |
parent | f9300004152ba4b3d091beb04d74f37b3b8ec281 (diff) |
feat(lsp): quick fix for @deno-types="npm:@types/*" (#25954)
Diffstat (limited to 'cli/lsp/resolver.rs')
-rw-r--r-- | cli/lsp/resolver.rs | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/cli/lsp/resolver.rs b/cli/lsp/resolver.rs index a5dfd25a6..c89273147 100644 --- a/cli/lsp/resolver.rs +++ b/cli/lsp/resolver.rs @@ -328,11 +328,11 @@ impl LspResolver { ) -> Option<(ModuleSpecifier, MediaType)> { let resolver = self.get_scope_resolver(file_referrer); let node_resolver = resolver.node_resolver.as_ref()?; - Some(NodeResolution::into_specifier_and_media_type( + Some(NodeResolution::into_specifier_and_media_type(Some( node_resolver .resolve_req_reference(req_ref, referrer, NodeResolutionMode::Types) - .ok(), - )) + .ok()?, + ))) } pub fn in_node_modules(&self, specifier: &ModuleSpecifier) -> bool { @@ -373,6 +373,26 @@ impl LspResolver { Some(NodeResolution::into_specifier_and_media_type(Some(resolution)).1) } + pub fn is_bare_package_json_dep( + &self, + specifier_text: &str, + referrer: &ModuleSpecifier, + ) -> bool { + let resolver = self.get_scope_resolver(Some(referrer)); + let Some(node_resolver) = resolver.node_resolver.as_ref() else { + return false; + }; + node_resolver + .resolve_if_for_npm_pkg( + specifier_text, + referrer, + NodeResolutionMode::Types, + ) + .ok() + .flatten() + .is_some() + } + pub fn get_closest_package_json( &self, referrer: &ModuleSpecifier, |