summaryrefslogtreecommitdiff
path: root/cli/lsp
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-09-01 14:01:20 +0200
committerGitHub <noreply@github.com>2023-09-01 12:01:20 +0000
commita74554987af17b09aeb2d113fad6998f465132d6 (patch)
tree3401aac6a33f4854e62ba33119a7c5f85090cb0f /cli/lsp
parent3436f65e20bd612fdfb8bdee5c20f52fbd11b21a (diff)
Revert "feat(lsp): enable via config file detection (#20334)" (#20347)
This reverts commit c0dcf6a3571ee04b4826c52d1329804e7c2b02c4. CC @nayeemrmn
Diffstat (limited to 'cli/lsp')
-rw-r--r--cli/lsp/client.rs2
-rw-r--r--cli/lsp/config.rs53
-rw-r--r--cli/lsp/diagnostics.rs4
-rw-r--r--cli/lsp/language_server.rs2
-rw-r--r--cli/lsp/repl.rs2
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,