Properly open project directories

This commit is contained in:
Kirill Bulatov 2023-07-18 00:37:03 +03:00
parent 6123c67de9
commit 6349d90cac
2 changed files with 20 additions and 8 deletions

View file

@ -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);

View file

@ -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)
.detach_and_log_err(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);
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()),
}) })