summaryrefslogtreecommitdiff
path: root/cli/lsp
diff options
context:
space:
mode:
Diffstat (limited to 'cli/lsp')
-rw-r--r--cli/lsp/config.rs27
-rw-r--r--cli/lsp/language_server.rs2
-rw-r--r--cli/lsp/resolver.rs12
3 files changed, 16 insertions, 25 deletions
diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs
index da5af0c2d..4f96d45a4 100644
--- a/cli/lsp/config.rs
+++ b/cli/lsp/config.rs
@@ -1520,25 +1520,20 @@ impl ConfigData {
})
});
- let is_workspace_root = config_file
+ let workspace = config_file
.as_ref()
- .is_some_and(|c| !c.json.workspaces.is_empty());
- let workspace_members = if is_workspace_root {
+ .and_then(|c| c.json.workspace.as_ref().map(|w| (c, w)));
+ let is_workspace_root = workspace.is_some();
+ let workspace_members = if let Some((config, workspace)) = workspace {
Arc::new(
- config_file
- .as_ref()
- .map(|c| {
- c.json
- .workspaces
- .iter()
- .flat_map(|p| {
- let dir_specifier = c.specifier.join(p).ok()?;
- let dir_path = specifier_to_file_path(&dir_specifier).ok()?;
- Url::from_directory_path(normalize_path(dir_path)).ok()
- })
- .collect()
+ workspace
+ .iter()
+ .flat_map(|p| {
+ let dir_specifier = config.specifier.join(p).ok()?;
+ let dir_path = specifier_to_file_path(&dir_specifier).ok()?;
+ Url::from_directory_path(normalize_path(dir_path)).ok()
})
- .unwrap_or_default(),
+ .collect(),
)
} else if let Some(workspace_data) = workspace_root {
workspace_data.workspace_members.clone()
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs
index be1b27cda..a921584c2 100644
--- a/cli/lsp/language_server.rs
+++ b/cli/lsp/language_server.rs
@@ -3496,7 +3496,7 @@ impl Inner {
self.initial_cwd.clone(),
config_data.and_then(|d| d.config_file.as_deref().cloned()),
config_data.and_then(|d| d.lockfile.clone()),
- config_data.and_then(|d| d.package_json.as_deref().cloned()),
+ config_data.and_then(|d| d.package_json.clone()),
config_data
.and_then(|d| d.npmrc.clone())
.unwrap_or_else(create_default_npmrc),
diff --git a/cli/lsp/resolver.rs b/cli/lsp/resolver.rs
index c4c66f114..45d44032f 100644
--- a/cli/lsp/resolver.rs
+++ b/cli/lsp/resolver.rs
@@ -48,7 +48,6 @@ use std::collections::BTreeMap;
use std::collections::BTreeSet;
use std::collections::HashMap;
use std::collections::HashSet;
-use std::rc::Rc;
use std::sync::Arc;
use super::cache::LspCache;
@@ -359,15 +358,12 @@ impl LspResolver {
pub fn get_closest_package_json(
&self,
referrer: &ModuleSpecifier,
- ) -> Result<Option<Rc<PackageJson>>, AnyError> {
+ ) -> Result<Option<Arc<PackageJson>>, AnyError> {
let resolver = self.get_scope_resolver(Some(referrer));
let Some(node_resolver) = resolver.node_resolver.as_ref() else {
return Ok(None);
};
- node_resolver.get_closest_package_json(
- referrer,
- &mut deno_runtime::deno_node::AllowAllNodePermissions,
- )
+ node_resolver.get_closest_package_json(referrer)
}
pub fn resolve_redirects(
@@ -462,7 +458,7 @@ async fn create_npm_resolver(
config_data
.and_then(|d| d.package_json.as_ref())
.map(|package_json| {
- package_json::get_local_package_json_version_reqs(package_json)
+ package_json.resolve_local_package_json_version_reqs()
}),
)),
npmrc: config_data
@@ -506,7 +502,7 @@ fn create_graph_resolver(
config_data
.and_then(|d| d.package_json.as_ref())
.map(|package_json| {
- package_json::get_local_package_json_version_reqs(package_json)
+ package_json.resolve_local_package_json_version_reqs()
}),
)),
maybe_jsx_import_source_config: config_file