From 090a225f28fb0547e572d1d99153cf84c48e855a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Cabero?= Date: Tue, 15 Aug 2023 09:37:44 +0200 Subject: [PATCH] goto_file: open picker if a directory is selected (#7909) * feat: open file picker on directories using goto_file (gf) * remove helper and call to canonicalize --- helix-term/src/commands.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index b8324b650..07aef95d0 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -1190,7 +1190,11 @@ fn goto_file_impl(cx: &mut Context, action: Action) { for sel in paths { let p = sel.trim(); if !p.is_empty() { - if let Err(e) = cx.editor.open(&PathBuf::from(p), action) { + let path = Path::new(p); + if path.is_dir() { + let picker = ui::file_picker(path.into(), &cx.editor.config()); + cx.push_layer(Box::new(overlaid(picker))); + } else if let Err(e) = cx.editor.open(path, action) { cx.editor.set_error(format!("Open file failed: {:?}", e)); } } @@ -2603,6 +2607,7 @@ fn file_picker_in_current_buffer_directory(cx: &mut Context) { let picker = ui::file_picker(path, &cx.editor.config()); cx.push_layer(Box::new(overlaid(picker))); } + fn file_picker_in_current_directory(cx: &mut Context) { let cwd = helix_loader::current_working_dir(); if !cwd.exists() {