@@ -118,11 +118,14 @@ fn dap_callback<T, F>(
118 let callback = Box::pin(async move {
118 let callback = Box::pin(async move {
119 let json = call.await?;
119 let json = call.await?;
120 let response = serde_json::from_value(json)?;
120 let response = serde_json::from_value(json)?;
121+ let call: Callback = Callback::EditorCompositor(Box::new(
121− let call: Callback = Box::new(move |editor: &mut Editor, compositor: &mut Compositor| {
122+ move |editor: &mut Editor, compositor: &mut Compositor| {
122− callback(editor, compositor, response)
123+ callback(editor, compositor, response)
126 jobs.callback(callback);
129 jobs.callback(callback);
@@ -274,10 +277,10 @@ pub fn dap_launch(cx: &mut Context) {
274 let completions = template.completion.clone();
277 let completions = template.completion.clone();
275 let name = template.name.clone();
278 let name = template.name.clone();
276 let callback = Box::pin(async move {
279 let callback = Box::pin(async move {
277− let call: Callback = Box::new(move |_editor, compositor| {
280+ let call: Callback = Callback::Compositor(Box::new(move |compositor| {
278 let prompt = debug_parameter_prompt(completions, name, Vec::new());
281 let prompt = debug_parameter_prompt(completions, name, Vec::new());
279 compositor.push(Box::new(prompt));
282 compositor.push(Box::new(prompt));
283 cx.jobs.callback(callback);
286 cx.jobs.callback(callback);
@@ -332,10 +335,10 @@ fn debug_parameter_prompt(
332 let config_name = config_name.clone();
335 let config_name = config_name.clone();
333 let params = params.clone();
336 let params = params.clone();
334 let callback = Box::pin(async move {
337 let callback = Box::pin(async move {
335− let call: Callback = Box::new(move |_editor, compositor| {
338+ let call: Callback = Callback::Compositor(Box::new(move |compositor| {
336 let prompt = debug_parameter_prompt(completions, config_name, params);
339 let prompt = debug_parameter_prompt(completions, config_name, params);
337 compositor.push(Box::new(prompt));
340 compositor.push(Box::new(prompt));
341 cx.jobs.callback(callback);
344 cx.jobs.callback(callback);
@@ -582,7 +585,7 @@ pub fn dap_edit_condition(cx: &mut Context) {
582 None => return,
585 None => return,
584 let callback = Box::pin(async move {
587 let callback = Box::pin(async move {
585− let call: Callback = Box::new(move |editor, compositor| {
588+ let call: Callback = Callback::EditorCompositor(Box::new(move |editor, compositor| {
586 let mut prompt = Prompt::new(
589 let mut prompt = Prompt::new(
587 "condition:".into(),
590 "condition:".into(),
@@ -610,7 +613,7 @@ pub fn dap_edit_condition(cx: &mut Context) {
610 prompt.insert_str(&condition, editor)
613 prompt.insert_str(&condition, editor)
612 compositor.push(Box::new(prompt));
615 compositor.push(Box::new(prompt));
616 cx.jobs.callback(callback);
619 cx.jobs.callback(callback);
@@ -624,7 +627,7 @@ pub fn dap_edit_log(cx: &mut Context) {
624 None => return,
627 None => return,
626 let callback = Box::pin(async move {
629 let callback = Box::pin(async move {
627− let call: Callback = Box::new(move |editor, compositor| {
630+ let call: Callback = Callback::EditorCompositor(Box::new(move |editor, compositor| {
628 let mut prompt = Prompt::new(
631 let mut prompt = Prompt::new(
629 "log-message:".into(),
632 "log-message:".into(),
@@ -651,7 +654,7 @@ pub fn dap_edit_log(cx: &mut Context) {
651 prompt.insert_str(&log_message, editor);
654 prompt.insert_str(&log_message, editor);
653 compositor.push(Box::new(prompt));
656 compositor.push(Box::new(prompt));
657 cx.jobs.callback(callback);
660 cx.jobs.callback(callback);