@@ -25,6 +25,7 @@ use helix_view::{
2525 keyboard::{KeyCode, KeyModifiers},
2626 Document, Editor, Theme, View,
2727};
28+use log::warn;
2829use std::borrow::Cow;
2930
3031use crossterm::event::{Event, MouseButton, MouseEvent, MouseEventKind};
@@ -729,14 +730,30 @@ impl EditorView {
729730 code: KeyCode::Char(char),
730731 ..
731732 } => {
732− let name = match picker.iter().find(|t| t.starts_with(char)) {
733− Some(n) => n.clone(),
733+ let (i, name) = match picker.iter().position(|t| t.starts_with(char)) {
734+ Some(pos) => (pos, picker.get(pos).unwrap().clone()),
734735 None => return None,
735736 };
737+ let completions = cxt.editor.debug_config_completions.clone().unwrap();
738+ let noop = |_input: &str| Vec::new();
739+ let completer = match completions.get(i) {
740+ Some(Some(completion)) => {
741+ match completion.get(0).and_then(|x| Some(x.as_str())) {
742+ Some("filename") => super::completers::filename,
743+ Some("directory") => super::completers::directory,
744+ Some(complete) => {
745+ warn!("Unknown debug config autocompleter: {}", complete);
746+ noop
747+ }
748+ None => noop,
749+ }
750+ }
751+ _ => noop,
752+ };
736753 let prompt = Prompt::new(
737754 "arg:".to_owned(),
738755 None,
739− super::completers::filename,
756+ completer,
740757 move |cx: &mut crate::compositor::Context,
741758 input: &str,
742759 event: PromptEvent| {