Properly open project directories
This commit is contained in:
parent
6123c67de9
commit
6349d90cac
2 changed files with 20 additions and 8 deletions
|
@ -1915,7 +1915,9 @@ impl Project {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let uri = lsp::Url::from_file_path(file.abs_path(cx)).unwrap();
|
let abs_path = file.abs_path(cx);
|
||||||
|
let uri = lsp::Url::from_file_path(&abs_path)
|
||||||
|
.unwrap_or_else(|()| panic!("Failed to register file {abs_path:?}"));
|
||||||
let initial_snapshot = buffer.text_snapshot();
|
let initial_snapshot = buffer.text_snapshot();
|
||||||
let language = buffer.language().cloned();
|
let language = buffer.language().cloned();
|
||||||
let worktree_id = file.worktree_id(cx);
|
let worktree_id = file.worktree_id(cx);
|
||||||
|
|
|
@ -180,18 +180,28 @@ impl TerminalView {
|
||||||
.expect("infallible");
|
.expect("infallible");
|
||||||
let maybe_path = path_like.path_like;
|
let maybe_path = path_like.path_like;
|
||||||
workspace.update(cx, |workspace, cx| {
|
workspace.update(cx, |workspace, cx| {
|
||||||
if false { //&& workspace.contains_path() {
|
let potential_abs_paths = if maybe_path.is_absolute() {
|
||||||
// TODO kb
|
vec![maybe_path]
|
||||||
} else if maybe_path.exists() {
|
} else {
|
||||||
let visible = maybe_path.is_dir();
|
|
||||||
workspace
|
workspace
|
||||||
.open_abs_path(maybe_path, visible, cx)
|
.worktrees(cx)
|
||||||
|
.map(|worktree| worktree.read(cx).abs_path().join(&maybe_path))
|
||||||
|
.collect()
|
||||||
|
};
|
||||||
|
|
||||||
|
for path in potential_abs_paths {
|
||||||
|
if path.exists() {
|
||||||
|
let visible = path.is_dir();
|
||||||
|
workspace
|
||||||
|
.open_abs_path(path, visible, cx)
|
||||||
.detach_and_log_err(cx);
|
.detach_and_log_err(cx);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO kb let terminal know if we cannot open the string
|
// TODO kb let terminal know if we cannot open the string + remove the error message when folder open returns None
|
||||||
}
|
}
|
||||||
_ => cx.emit(event.clone()),
|
_ => cx.emit(event.clone()),
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue