From a0ec9cf383f54583f5ded88b5dc2197e8b9d8445 Mon Sep 17 00:00:00 2001 From: Andres Suarez Date: Tue, 20 May 2025 13:21:49 -0400 Subject: [PATCH] telemetry: Consider the entire chain of config sources when merging (#31039) Global settings were implemented in #30444, but `Settings` implementations need to consider that source for it to be useful. This PR does just that for `TelemetrySettings` so these can be controlled via global settings. Release Notes: - N/A --- crates/client/src/client.rs | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/crates/client/src/client.rs b/crates/client/src/client.rs index 55e81bbccf..d9d248b210 100644 --- a/crates/client/src/client.rs +++ b/crates/client/src/client.rs @@ -490,14 +490,14 @@ impl Drop for PendingEntitySubscription { } } -#[derive(Copy, Clone)] +#[derive(Copy, Clone, Deserialize, Debug)] pub struct TelemetrySettings { pub diagnostics: bool, pub metrics: bool, } /// Control what info is collected by Zed. -#[derive(Default, Clone, Serialize, Deserialize, JsonSchema)] +#[derive(Default, Clone, Serialize, Deserialize, JsonSchema, Debug)] pub struct TelemetrySettingsContent { /// Send debug info like crash reports. /// @@ -515,25 +515,7 @@ impl settings::Settings for TelemetrySettings { type FileContent = TelemetrySettingsContent; fn load(sources: SettingsSources, _: &mut App) -> Result { - Ok(Self { - diagnostics: sources - .user - .as_ref() - .or(sources.server.as_ref()) - .and_then(|v| v.diagnostics) - .unwrap_or( - sources - .default - .diagnostics - .ok_or_else(Self::missing_default)?, - ), - metrics: sources - .user - .as_ref() - .or(sources.server.as_ref()) - .and_then(|v| v.metrics) - .unwrap_or(sources.default.metrics.ok_or_else(Self::missing_default)?), - }) + sources.json_merge() } fn import_from_vscode(vscode: &settings::VsCodeSettings, current: &mut Self::FileContent) {