diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2023-09-01 14:01:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-01 12:01:20 +0000 |
commit | a74554987af17b09aeb2d113fad6998f465132d6 (patch) | |
tree | 3401aac6a33f4854e62ba33119a7c5f85090cb0f | |
parent | 3436f65e20bd612fdfb8bdee5c20f52fbd11b21a (diff) |
Revert "feat(lsp): enable via config file detection (#20334)" (#20347)
This reverts commit c0dcf6a3571ee04b4826c52d1329804e7c2b02c4.
CC @nayeemrmn
-rw-r--r-- | cli/lsp/client.rs | 2 | ||||
-rw-r--r-- | cli/lsp/config.rs | 53 | ||||
-rw-r--r-- | cli/lsp/diagnostics.rs | 4 | ||||
-rw-r--r-- | cli/lsp/language_server.rs | 2 | ||||
-rw-r--r-- | cli/lsp/repl.rs | 2 |
5 files changed, 16 insertions, 47 deletions
diff --git a/cli/lsp/client.rs b/cli/lsp/client.rs index acef59f97..45fc88376 100644 --- a/cli/lsp/client.rs +++ b/cli/lsp/client.rs @@ -359,7 +359,7 @@ impl ClientTrait for ReplClient { .into_iter() .map(|_| { Ok(SpecifierSettings { - enable: Some(true), + enable: true, ..Default::default() }) }) diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs index b70af6519..292f07e47 100644 --- a/cli/lsp/config.rs +++ b/cli/lsp/config.rs @@ -236,7 +236,7 @@ impl Default for ImportCompletionSettings { #[serde(rename_all = "camelCase")] pub struct SpecifierSettings { /// A flag that indicates if Deno is enabled for this specifier or not. - pub enable: Option<bool>, + pub enable: bool, /// A list of paths, using the workspace folder as a base that should be Deno /// enabled. #[serde(default)] @@ -288,7 +288,8 @@ fn empty_string_none<'de, D: serde::Deserializer<'de>>( #[serde(rename_all = "camelCase")] pub struct WorkspaceSettings { /// A flag that indicates if Deno is enabled for the workspace. - pub enable: Option<bool>, + #[serde(default)] + pub enable: bool, /// A list of paths, using the root_uri as a base that should be Deno enabled. #[serde(default)] @@ -358,7 +359,7 @@ pub struct WorkspaceSettings { impl Default for WorkspaceSettings { fn default() -> Self { WorkspaceSettings { - enable: None, + enable: false, enable_paths: vec![], cache: None, certificate_stores: None, @@ -404,7 +405,6 @@ pub struct ConfigSnapshot { pub client_capabilities: ClientCapabilities, pub enabled_paths: HashMap<Url, Vec<Url>>, pub excluded_paths: Option<Vec<Url>>, - pub has_config_file: bool, pub settings: Settings, } @@ -415,7 +415,6 @@ impl ConfigSnapshot { &self.enabled_paths, self.excluded_paths.as_ref(), &self.settings, - self.has_config_file, specifier, ) } @@ -524,10 +523,6 @@ impl Config { self.maybe_config_file_info = None; } - pub fn has_config_file(&self) -> bool { - self.maybe_config_file_info.is_some() - } - pub fn set_config_file(&mut self, config_file: ConfigFile) { self.maybe_config_file_info = Some(LspConfigFileInfo { maybe_lockfile: resolve_lockfile_from_config(&config_file).map( @@ -587,7 +582,6 @@ impl Config { .maybe_config_file_info .as_ref() .map(|i| i.excluded_paths.clone()), - has_config_file: self.has_config_file(), settings: self.settings.clone(), }) } @@ -596,14 +590,6 @@ impl Config { self.settings.specifiers.contains_key(specifier) } - pub fn enabled(&self) -> bool { - self - .settings - .workspace - .enable - .unwrap_or_else(|| self.has_config_file()) - } - pub fn specifier_enabled(&self, specifier: &ModuleSpecifier) -> bool { specifier_enabled( &self.enabled_paths, @@ -612,7 +598,6 @@ impl Config { .as_ref() .map(|i| &i.excluded_paths), &self.settings, - self.has_config_file(), specifier, ) } @@ -625,7 +610,7 @@ impl Config { pub fn enabled_urls(&self) -> Vec<Url> { let mut urls: Vec<Url> = Vec::new(); - if !self.enabled() && self.enabled_paths.is_empty() { + if !self.settings.workspace.enable && self.enabled_paths.is_empty() { // do not return any urls when disabled return urls; } @@ -795,7 +780,6 @@ fn specifier_enabled( enabled_paths: &HashMap<Url, Vec<Url>>, excluded_paths: Option<&Vec<Url>>, settings: &Settings, - workspace_has_config_file: bool, specifier: &Url, ) -> bool { let specifier_str = specifier.as_str(); @@ -816,9 +800,8 @@ fn specifier_enabled( settings .specifiers .get(specifier) - .and_then(|settings| settings.enable) - .or(settings.workspace.enable) - .unwrap_or(workspace_has_config_file) + .map(|settings| settings.enable) + .unwrap_or_else(|| settings.workspace.enable) } fn resolve_lockfile_from_config(config_file: &ConfigFile) -> Option<Lockfile> { @@ -933,7 +916,7 @@ mod tests { assert_eq!( config.workspace_settings().clone(), WorkspaceSettings { - enable: None, + enable: false, enable_paths: Vec::new(), cache: None, certificate_stores: None, @@ -1042,14 +1025,14 @@ mod tests { let mut config = Config::new(); let root_dir = Url::parse("file:///example/").unwrap(); config.root_uri = Some(root_dir.clone()); - config.settings.workspace.enable = Some(false); + config.settings.workspace.enable = false; config.settings.workspace.enable_paths = Vec::new(); assert_eq!(config.enabled_urls(), vec![]); - config.settings.workspace.enable = Some(true); + config.settings.workspace.enable = true; assert_eq!(config.enabled_urls(), vec![root_dir]); - config.settings.workspace.enable = Some(false); + config.settings.workspace.enable = false; let root_dir1 = Url::parse("file:///root1/").unwrap(); let root_dir2 = Url::parse("file:///root2/").unwrap(); let root_dir3 = Url::parse("file:///root3/").unwrap(); @@ -1077,18 +1060,4 @@ mod tests { ] ); } - - #[test] - fn config_enable_via_config_file_detection() { - let mut config = Config::new(); - let root_uri = Url::parse("file:///root/").unwrap(); - config.root_uri = Some(root_uri.clone()); - config.settings.workspace.enable = None; - assert_eq!(config.enabled_urls(), vec![]); - - config.set_config_file( - ConfigFile::new("{}", root_uri.join("deno.json").unwrap()).unwrap(), - ); - assert_eq!(config.enabled_urls(), vec![root_uri]); - } } diff --git a/cli/lsp/diagnostics.rs b/cli/lsp/diagnostics.rs index f2f45a928..dea43ad87 100644 --- a/cli/lsp/diagnostics.rs +++ b/cli/lsp/diagnostics.rs @@ -1390,7 +1390,7 @@ mod tests { ConfigSnapshot { settings: Settings { workspace: WorkspaceSettings { - enable: Some(true), + enable: true, lint: true, ..Default::default() }, @@ -1466,7 +1466,7 @@ let c: number = "a"; disabled_config.settings.specifiers.insert( specifier.clone(), SpecifierSettings { - enable: Some(false), + enable: false, enable_paths: Vec::new(), code_lens: Default::default(), }, diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index dc85eb1cc..d3c7ea492 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -3053,7 +3053,7 @@ impl tower_lsp::LanguageServer for LanguageServer { let options = DidChangeWatchedFilesRegistrationOptions { watchers: vec![FileSystemWatcher { glob_pattern: "**/*.{json,jsonc,lock}".to_string(), - kind: None, + kind: Some(WatchKind::Change), }], }; registrations.push(Registration { diff --git a/cli/lsp/repl.rs b/cli/lsp/repl.rs index 598674fdc..ad0171629 100644 --- a/cli/lsp/repl.rs +++ b/cli/lsp/repl.rs @@ -284,7 +284,7 @@ fn get_cwd_uri() -> Result<ModuleSpecifier, AnyError> { pub fn get_repl_workspace_settings() -> WorkspaceSettings { WorkspaceSettings { - enable: Some(true), + enable: true, enable_paths: Vec::new(), config: None, certificate_stores: None, |