This commit is contained in:
Julia Ryan 2025-07-22 14:08:11 -07:00
parent 124b4645c4
commit bded0e12f4
No known key found for this signature in database
5 changed files with 41 additions and 19 deletions

View file

@ -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![],

View file

@ -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<Editor>,
cwd: Entity<Editor>,
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,
})
}

View file

@ -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,
}

View file

@ -1385,7 +1385,6 @@ fn clip_ranges<'a>(
}
impl EventEmitter<SearchEvent> for Editor {}
impl EventEmitter<crate::code_context_menus::OpenInDebugJson> for Editor {}
impl Editor {
pub fn update_restoration_data(

View file

@ -1092,6 +1092,14 @@ pub struct Workspace {
impl EventEmitter<Event> for Workspace {}
#[derive(Clone)]
pub struct OpenInDebugJson {
pub scenario: DebugScenario,
pub id: WorkspaceId,
}
impl EventEmitter<OpenInDebugJson> for Workspace {}
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
pub struct ViewId {
pub creator: CollaboratorId,