@@ -709,6 +709,54 @@ impl EditorView {
712+ fn request_parameter(
713+ completions: Vec<String>,
714+ config_name: String,
715+ cxt: &mut commands::Context,
716+ mut params: Vec<String>,
718+ let noop = |_input: &str| Vec::new();
719+ let completer = match completions.get(0).map(|x| x.as_str()) {
720+ Some("filename") => super::completers::filename,
721+ Some("directory") => super::completers::directory,
723+ warn!("Unknown debug config autocompleter: {}", complete);
728+ let prompt = Prompt::new(
732+ move |cx: &mut crate::compositor::Context, input: &str, event: PromptEvent| {
733+ if event != PromptEvent::Validate {
737+ params.push(input.to_owned());
739+ if params.len() < completions.len() {
741+ // Self::request_parameter(
742+ // completions.clone(),
743+ // config_name.clone(),
748+ commands::dap_start_impl(
752+ Some(params.iter().map(|x| x.as_str()).collect()),
757+ cxt.push_layer(Box::new(prompt));
712 /// Handle events by looking them up in `self.keymaps`. Returns None
760 /// Handle events by looking them up in `self.keymaps`. Returns None
713 /// if event was handled (a command was executed or a subkeymap was
761 /// if event was handled (a command was executed or a subkeymap was
714 /// activated). Only KeymapResult::{NotFound, Cancelled} is returned
762 /// activated). Only KeymapResult::{NotFound, Cancelled} is returned
@@ -735,38 +783,10 @@ impl EditorView {
735 None => return None,
783 None => return None,
737 let completions = cxt.editor.debug_config_completions.clone().unwrap();
785 let completions = cxt.editor.debug_config_completions.clone().unwrap();
738− let noop = |_input: &str| Vec::new();
739− let completer = match completions.get(i) {
786+ let completion = completions.get(i).unwrap().clone();
740− Some(Some(completion)) => match completion.get(0).map(|x| x.as_str()) {
787+ if !completion.is_empty() {
741− Some("filename") => super::completers::filename,
788+ Self::request_parameter(completion, name, cxt, Vec::new());
742− Some("directory") => super::completers::directory,
789+ }
744− warn!("Unknown debug config autocompleter: {}", complete);
751− let prompt = Prompt::new(
755− move |cx: &mut crate::compositor::Context,
757− event: PromptEvent| {
758− if event != PromptEvent::Validate {
761− commands::dap_start_impl(
769− cxt.push_layer(Box::new(prompt));
771 _ => return None,
791 _ => return None,