summaryrefslogtreecommitdiff
path: root/cli/lsp/config.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2024-08-30 18:58:58 +0100
committerGitHub <noreply@github.com>2024-08-30 13:58:58 -0400
commitb1c6142f741a507ba6594ab174065e00213100b9 (patch)
treef3dce3e55e4b10b6cf0570dddb6f69340da7a0cf /cli/lsp/config.rs
parent4639ae655e9db396fdf4408961db59372334b69b (diff)
BREAKING: `DENO_FUTURE=1` by default, or welcome to Deno 2.0 (#25213)
This commit effectively turns Deno into Deno 2.0. This is done by forcing `DENO_FUTURE=1` env var, that was available in the past few months to try Deno 2 changes. This commit contains several breaking changes scheduled for Deno 2: - all deprecated JavaScript APIs are not available any more, mostly `Deno.*` APIs - `window` global is removed - FFI, WebGPU and FS APIs are now stable and don't require `--unstable-*` flags - import assertions are no longer supported - "bring your own node modules" is enabled by default This is the first commit in a series that are scheduled before the Deno 2 release. Follow up work is tracked in https://github.com/denoland/deno/issues/25241. --------- Co-authored-by: Asher Gomez <ashersaupingomez@gmail.com> Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com> Co-authored-by: Nathan Whitaker <nathan@deno.com>
Diffstat (limited to 'cli/lsp/config.rs')
-rw-r--r--cli/lsp/config.rs30
1 files changed, 25 insertions, 5 deletions
diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs
index ec2690506..4ac9b4d0a 100644
--- a/cli/lsp/config.rs
+++ b/cli/lsp/config.rs
@@ -1398,7 +1398,12 @@ impl ConfigData {
|| (
*DENO_FUTURE
&& member_dir.workspace.package_jsons().next().is_some()
- && member_dir.workspace.node_modules_dir().is_none()
+ && member_dir
+ .workspace
+ .node_modules_mode()
+ .ok()
+ .flatten()
+ .is_none()
// TODO(2.0): remove
);
if byonm {
@@ -1874,13 +1879,28 @@ fn resolve_node_modules_dir(
// `nodeModulesDir: true` setting in the deno.json file. This is to
// reduce the chance of modifying someone's node_modules directory
// without them having asked us to do so.
- let explicitly_disabled = workspace.node_modules_dir() == Some(false);
+ let node_modules_mode = workspace.node_modules_mode().ok().flatten();
+ let node_modules_dir_option = workspace.node_modules_dir();
+ let explicitly_disabled = if *DENO_FUTURE {
+ node_modules_mode == Some(NodeModulesMode::GlobalAuto)
+ } else {
+ node_modules_dir_option == Some(false)
+ };
if explicitly_disabled {
return None;
}
- let enabled = byonm
- || workspace.node_modules_dir() == Some(true)
- || workspace.vendor_dir_path().is_some();
+ let enabled = if *DENO_FUTURE {
+ byonm
+ || node_modules_mode
+ .map(|m| m.uses_node_modules_dir())
+ .unwrap_or(false)
+ || workspace.vendor_dir_path().is_some()
+ } else {
+ byonm
+ || workspace.node_modules_dir() == Some(true)
+ || workspace.vendor_dir_path().is_some()
+ };
+
if !enabled {
return None;
}