diff options
Diffstat (limited to 'cli/lsp')
-rw-r--r-- | cli/lsp/documents.rs | 8 | ||||
-rw-r--r-- | cli/lsp/jsr.rs | 25 |
2 files changed, 17 insertions, 16 deletions
diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index 80c5a4dc5..dcfdb0d00 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -1410,11 +1410,9 @@ impl Documents { if let Some(lockfile) = config_data.lockfile.as_ref() { let reqs = npm_reqs_by_scope.entry(Some(scope.clone())).or_default(); let lockfile = lockfile.lock(); - for key in lockfile.content.packages.specifiers.keys() { - if let Some(key) = key.strip_prefix("npm:") { - if let Ok(req) = PackageReq::from_str(key) { - reqs.insert(req); - } + for dep_req in lockfile.content.packages.specifiers.keys() { + if dep_req.kind == deno_semver::package::PackageKind::Npm { + reqs.insert(dep_req.req.clone()); } } } diff --git a/cli/lsp/jsr.rs b/cli/lsp/jsr.rs index c0a82383d..6c591637c 100644 --- a/cli/lsp/jsr.rs +++ b/cli/lsp/jsr.rs @@ -92,20 +92,23 @@ impl JsrCacheResolver { } } if let Some(lockfile) = config_data.and_then(|d| d.lockfile.as_ref()) { - for (req_url, nv_url) in &lockfile.lock().content.packages.specifiers { - let Some(req) = req_url.strip_prefix("jsr:") else { - continue; - }; - let Some(nv) = nv_url.strip_prefix("jsr:") else { - continue; - }; - let Ok(req) = PackageReq::from_str(req) else { - continue; + for (dep_req, version) in &lockfile.lock().content.packages.specifiers { + let req = match dep_req.kind { + deno_semver::package::PackageKind::Jsr => &dep_req.req, + deno_semver::package::PackageKind::Npm => { + continue; + } }; - let Ok(nv) = PackageNv::from_str(nv) else { + let Ok(version) = Version::parse_standard(version) else { continue; }; - nv_by_req.insert(req, Some(nv)); + nv_by_req.insert( + req.clone(), + Some(PackageNv { + name: req.name.clone(), + version, + }), + ); } } Self { |