@@ -118,11 +118,14 @@ fn dap_callback<T, F>(
118118 let callback = Box::pin(async move {
119119 let json = call.await?;
120120 let response = serde_json::from_value(json)?;
121− let call: Callback = Box::new(move |editor: &mut Editor, compositor: &mut Compositor| {
122− callback(editor, compositor, response)
123− });
121+ let call: Callback = Callback::EditorCompositor(Box::new(
122+ move |editor: &mut Editor, compositor: &mut Compositor| {
123+ callback(editor, compositor, response)
124+ },
125+ ));
124126 Ok(call)
125127 });
128+
126129 jobs.callback(callback);
127130}
128131
@@ -274,10 +277,10 @@ pub fn dap_launch(cx: &mut Context) {
274277 let completions = template.completion.clone();
275278 let name = template.name.clone();
276279 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| {
278281 let prompt = debug_parameter_prompt(completions, name, Vec::new());
279282 compositor.push(Box::new(prompt));
280− });
283+ }));
281284 Ok(call)
282285 });
283286 cx.jobs.callback(callback);
@@ -332,10 +335,10 @@ fn debug_parameter_prompt(
332335 let config_name = config_name.clone();
333336 let params = params.clone();
334337 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| {
336339 let prompt = debug_parameter_prompt(completions, config_name, params);
337340 compositor.push(Box::new(prompt));
338− });
341+ }));
339342 Ok(call)
340343 });
341344 cx.jobs.callback(callback);
@@ -582,7 +585,7 @@ pub fn dap_edit_condition(cx: &mut Context) {
582585 None => return,
583586 };
584587 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| {
586589 let mut prompt = Prompt::new(
587590 "condition:".into(),
588591 None,
@@ -610,7 +613,7 @@ pub fn dap_edit_condition(cx: &mut Context) {
610613 prompt.insert_str(&condition, editor)
611614 }
612615 compositor.push(Box::new(prompt));
613− });
616+ }));
614617 Ok(call)
615618 });
616619 cx.jobs.callback(callback);
@@ -624,7 +627,7 @@ pub fn dap_edit_log(cx: &mut Context) {
624627 None => return,
625628 };
626629 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| {
628631 let mut prompt = Prompt::new(
629632 "log-message:".into(),
630633 None,
@@ -651,7 +654,7 @@ pub fn dap_edit_log(cx: &mut Context) {
651654 prompt.insert_str(&log_message, editor);
652655 }
653656 compositor.push(Box::new(prompt));
654− });
657+ }));
655658 Ok(call)
656659 });
657660 cx.jobs.callback(callback);