Fix ~ expansion in ssh projects' terminals (#19078)
When setting a remote ssh project path starting with ~, Zed would fail to cd into such project's directory when opening a new terminal. Release Notes: - N/A --------- Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
This commit is contained in:
parent
f33b8abc72
commit
550064f80f
1 changed files with 10 additions and 1 deletions
|
@ -362,7 +362,16 @@ pub fn wrap_for_ssh(
|
|||
}
|
||||
|
||||
let commands = if let Some(path) = path {
|
||||
format!("cd {:?}; {} {}", path, env_changes, to_run)
|
||||
let path_string = path.to_string_lossy().to_string();
|
||||
// shlex will wrap the command in single quotes (''), disabling ~ expansion,
|
||||
// replace ith with something that works
|
||||
let tilde_prefix = "~/";
|
||||
if path.starts_with(tilde_prefix) {
|
||||
let trimmed_path = &path_string[tilde_prefix.len()..];
|
||||
format!("cd \"$HOME/{trimmed_path}\"; {env_changes} {to_run}")
|
||||
} else {
|
||||
format!("cd {path:?}; {env_changes} {to_run}")
|
||||
}
|
||||
} else {
|
||||
format!("cd; {env_changes} {to_run}")
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue