goto_file_impl: use relative path to open file (#7965)

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
This commit is contained in:
Mike 2023-08-21 12:15:45 -04:00 committed by GitHub
parent 75342968e2
commit 0cc94cd87a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1160,6 +1160,10 @@ fn goto_file_impl(cx: &mut Context, action: Action) {
let (view, doc) = current_ref!(cx.editor); let (view, doc) = current_ref!(cx.editor);
let text = doc.text(); let text = doc.text();
let selections = doc.selection(view.id); let selections = doc.selection(view.id);
let rel_path = doc
.relative_path()
.map(|path| path.parent().unwrap().to_path_buf())
.unwrap_or_default();
let mut paths: Vec<_> = selections let mut paths: Vec<_> = selections
.iter() .iter()
.map(|r| text.slice(r.from()..r.to()).to_string()) .map(|r| text.slice(r.from()..r.to()).to_string())
@ -1190,7 +1194,7 @@ fn goto_file_impl(cx: &mut Context, action: Action) {
for sel in paths { for sel in paths {
let p = sel.trim(); let p = sel.trim();
if !p.is_empty() { if !p.is_empty() {
let path = Path::new(p); let path = &rel_path.join(p);
if path.is_dir() { if path.is_dir() {
let picker = ui::file_picker(path.into(), &cx.editor.config()); let picker = ui::file_picker(path.into(), &cx.editor.config());
cx.push_layer(Box::new(overlaid(picker))); cx.push_layer(Box::new(overlaid(picker)));