use dap_types::SteppingGranularity; use gpui::{App, Global}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use settings::{Settings, SettingsSources}; #[derive(Serialize, Deserialize, JsonSchema, Clone, Copy)] #[serde(default)] pub struct DebuggerSettings { /// Determines the stepping granularity. /// /// Default: line pub stepping_granularity: SteppingGranularity, /// Whether the breakpoints should be reused across Zed sessions. /// /// Default: true pub save_breakpoints: bool, /// Whether to show the debug button in the status bar. /// /// Default: true pub button: bool, /// Time in milliseconds until timeout error when connecting to a TCP debug adapter /// /// Default: 2000ms pub timeout: u64, /// Whether to log messages between active debug adapters and Zed /// /// Default: true pub log_dap_communications: bool, /// Whether to format dap messages in when adding them to debug adapter logger /// /// Default: true pub format_dap_log_messages: bool, } impl Default for DebuggerSettings { fn default() -> Self { Self { button: true, save_breakpoints: true, stepping_granularity: SteppingGranularity::Line, timeout: 2000, log_dap_communications: true, format_dap_log_messages: true, } } } impl Settings for DebuggerSettings { const KEY: Option<&'static str> = Some("debugger"); type FileContent = Self; fn load(sources: SettingsSources, _: &mut App) -> anyhow::Result { sources.json_merge() } fn import_from_vscode(_vscode: &settings::VsCodeSettings, _current: &mut Self::FileContent) {} } impl Global for DebuggerSettings {}