diff --git a/crates/debugger_ui/src/debugger_panel.rs b/crates/debugger_ui/src/debugger_panel.rs index c90a2878e9..0c74bb47bc 100644 --- a/crates/debugger_ui/src/debugger_panel.rs +++ b/crates/debugger_ui/src/debugger_panel.rs @@ -36,12 +36,12 @@ use task::{DebugScenario, TaskContext}; use tree_sitter::{Query, StreamingIterator as _}; use ui::{ContextMenu, Divider, PopoverMenuHandle, Tooltip, prelude::*}; use util::{ResultExt, maybe}; -use workspace::SplitDirection; use workspace::item::SaveOptions; use workspace::{ Item, Pane, Workspace, dock::{DockPosition, Panel, PanelEvent}, }; +use workspace::{OpenInDebugJson, SplitDirection}; use zed_actions::ToggleFocus; pub enum DebugPanelEvent { @@ -98,6 +98,25 @@ impl DebugPanel { }, ); + if let Some(entity) = workspace.weak_handle().upgrade() { + let edit_scenario_subscription = cx.subscribe_in( + &entity, + window, + move |this, workspace, OpenInDebugJson { scenario, id }, window, cx| { + let task = this.go_to_scenario_definition( + TaskSourceKind::UserInput, + scenario.clone(), + todo!(), + // *id, + window, + cx, + ); + cx.spawn(async move |_, cx| task.await) + .detach_and_log_err(cx); + }, + ); + } + Self { size: px(300.), sessions: vec![], diff --git a/crates/debugger_ui/src/new_process_modal.rs b/crates/debugger_ui/src/new_process_modal.rs index 6d7fa244a2..0aeb91f938 100644 --- a/crates/debugger_ui/src/new_process_modal.rs +++ b/crates/debugger_ui/src/new_process_modal.rs @@ -343,12 +343,6 @@ impl NewProcessModal { return; } - if let NewProcessMode::Launch = &self.mode { - if self.configure_mode.read(cx).save_to_debug_json.selected() { - self.save_debug_scenario(window, cx); - } - } - let Some(debugger) = self.debugger.clone() else { return; }; @@ -806,7 +800,6 @@ pub(super) struct ConfigureMode { program: Entity, cwd: Entity, stop_on_entry: ToggleState, - save_to_debug_json: ToggleState, } impl ConfigureMode { @@ -825,7 +818,6 @@ impl ConfigureMode { program, cwd, stop_on_entry: ToggleState::Unselected, - save_to_debug_json: ToggleState::Unselected, }) } diff --git a/crates/editor/src/code_context_menus.rs b/crates/editor/src/code_context_menus.rs index 7c5cfaf452..9ec976563d 100644 --- a/crates/editor/src/code_context_menus.rs +++ b/crates/editor/src/code_context_menus.rs @@ -1446,11 +1446,20 @@ impl CodeActionsMenu { ) .on_click(cx.listener({ let scenario = scenario.clone(); - move |_, _, _window, cx| { + move |editor, _, _window, cx| { + if let Some((workspace, Some(id))) = + editor.workspace.as_ref() + { + workspace + .update(cx, |_, cx| { + cx.emit(workspace::OpenInDebugJson { + scenario: scenario.clone(), + id: *id, + }); + }) + .ok(); + } cx.stop_propagation(); - cx.emit(OpenInDebugJson { - scenario: scenario.clone(), - }); } })), ) @@ -1499,8 +1508,3 @@ impl CodeActionsMenu { Popover::new().child(list).into_any_element() } } - -#[derive(Clone)] -pub struct OpenInDebugJson { - pub scenario: DebugScenario, -} diff --git a/crates/editor/src/items.rs b/crates/editor/src/items.rs index 4d6b78740f..2e4631a62b 100644 --- a/crates/editor/src/items.rs +++ b/crates/editor/src/items.rs @@ -1385,7 +1385,6 @@ fn clip_ranges<'a>( } impl EventEmitter for Editor {} -impl EventEmitter for Editor {} impl Editor { pub fn update_restoration_data( diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index 125b5bb98a..2371f2f7c6 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -1092,6 +1092,14 @@ pub struct Workspace { impl EventEmitter for Workspace {} +#[derive(Clone)] +pub struct OpenInDebugJson { + pub scenario: DebugScenario, + pub id: WorkspaceId, +} + +impl EventEmitter for Workspace {} + #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] pub struct ViewId { pub creator: CollaboratorId,