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 {
|
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 {
|
} else {
|
||||||
format!("cd; {env_changes} {to_run}")
|
format!("cd; {env_changes} {to_run}")
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue