mirror of
https://github.com/denoland/deno.git
synced 2025-08-03 18:38:33 +00:00
feat(lsp): support lockfile and node_modules directory (#19203)
This adds support for the lockfile and node_modules directory to the lsp. In the case of the node_modules directory, it is only enabled when explicitly opted into via `"nodeModulesDir": true` in the configuration file. This is to reduce the language server automatically modifying the node_modules directory when the user doesn't want it to. Closes #16510 Closes #16373
This commit is contained in:
parent
5878258952
commit
bb37dfb5b7
11 changed files with 567 additions and 176 deletions
|
@ -17,7 +17,6 @@ use deno_npm::resolution::ValidSerializedNpmResolutionSnapshot;
|
|||
use deno_npm::NpmPackageId;
|
||||
use deno_semver::npm::NpmPackageReq;
|
||||
|
||||
use crate::args::config_file::LockConfig;
|
||||
use crate::args::ConfigFile;
|
||||
use crate::npm::CliNpmRegistryApi;
|
||||
use crate::Flags;
|
||||
|
@ -45,22 +44,9 @@ pub fn discover(
|
|||
None => match maybe_config_file {
|
||||
Some(config_file) => {
|
||||
if config_file.specifier.scheme() == "file" {
|
||||
match config_file.to_lock_config()? {
|
||||
Some(LockConfig::Bool(lock)) if !lock => {
|
||||
return Ok(None);
|
||||
}
|
||||
Some(LockConfig::PathBuf(lock)) => config_file
|
||||
.specifier
|
||||
.to_file_path()
|
||||
.unwrap()
|
||||
.parent()
|
||||
.unwrap()
|
||||
.join(lock),
|
||||
_ => {
|
||||
let mut path = config_file.specifier.to_file_path().unwrap();
|
||||
path.set_file_name("deno.lock");
|
||||
path
|
||||
}
|
||||
match config_file.resolve_lockfile_path()? {
|
||||
Some(path) => path,
|
||||
None => return Ok(None),
|
||||
}
|
||||
} else {
|
||||
return Ok(None);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue