emmet: Add workaround for leading /
on Windows paths (#36064)
This PR adds a workaround for the leading `/` on Windows paths (https://github.com/zed-industries/zed/issues/20559). Release Notes: - N/A
This commit is contained in:
parent
42b7dbeaee
commit
3a04657730
1 changed files with 23 additions and 2 deletions
|
@ -70,8 +70,7 @@ impl zed::Extension for EmmetExtension {
|
||||||
Ok(zed::Command {
|
Ok(zed::Command {
|
||||||
command: zed::node_binary_path()?,
|
command: zed::node_binary_path()?,
|
||||||
args: vec![
|
args: vec![
|
||||||
env::current_dir()
|
zed_ext::sanitize_windows_path(env::current_dir().unwrap())
|
||||||
.unwrap()
|
|
||||||
.join(&server_path)
|
.join(&server_path)
|
||||||
.to_string_lossy()
|
.to_string_lossy()
|
||||||
.to_string(),
|
.to_string(),
|
||||||
|
@ -83,3 +82,25 @@ impl zed::Extension for EmmetExtension {
|
||||||
}
|
}
|
||||||
|
|
||||||
zed::register_extension!(EmmetExtension);
|
zed::register_extension!(EmmetExtension);
|
||||||
|
|
||||||
|
/// Extensions to the Zed extension API that have not yet stabilized.
|
||||||
|
mod zed_ext {
|
||||||
|
/// Sanitizes the given path to remove the leading `/` on Windows.
|
||||||
|
///
|
||||||
|
/// On macOS and Linux this is a no-op.
|
||||||
|
///
|
||||||
|
/// This is a workaround for https://github.com/bytecodealliance/wasmtime/issues/10415.
|
||||||
|
pub fn sanitize_windows_path(path: std::path::PathBuf) -> std::path::PathBuf {
|
||||||
|
use zed_extension_api::{Os, current_platform};
|
||||||
|
|
||||||
|
let (os, _arch) = current_platform();
|
||||||
|
match os {
|
||||||
|
Os::Mac | Os::Linux => path,
|
||||||
|
Os::Windows => path
|
||||||
|
.to_string_lossy()
|
||||||
|
.to_string()
|
||||||
|
.trim_start_matches('/')
|
||||||
|
.into(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue