diff options
author | Andrés Cabero | 2023-08-15 07:37:44 +0000 |
---|---|---|
committer | GitHub | 2023-08-15 07:37:44 +0000 |
commit | 090a225f28fb0547e572d1d99153cf84c48e855a (patch) | |
tree | 100581618f665371e680f94a72369393593f76e3 /helix-term/src | |
parent | 7b2f3f533c50b647bfd0b1019e9cef421c5124f9 (diff) |
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
Diffstat (limited to 'helix-term/src')
-rw-r--r-- | helix-term/src/commands.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index b8324b65..07aef95d 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() { |