Detailed changes
@@ -126,6 +126,36 @@ jobs:
- name: Build Zed
run: cargo build -p zed
+
+ # todo!(windows): Actually run the tests
+ windows_tests:
+ name: (Windows) Run Clippy and tests
+ runs-on: windows-latest
+ steps:
+ - name: Checkout repo
+ uses: actions/checkout@v4
+ with:
+ clean: false
+ submodules: "recursive"
+
+ - name: Restore from cache
+ uses: actions/cache@v4
+ with:
+ path: |
+ ~/.cargo/bin/
+ ~/.cargo/registry/index/
+ ~/.cargo/registry/cache/
+ ~/.cargo/git/db/
+ target/
+ key: ${{ runner.os }}-cargo-${{ hashFiles('**/rust-toolchain.toml') }}-${{ hashFiles('**/Cargo.lock') }}
+ # todo!(windows): Actually run clippy
+ #- name: cargo clippy
+ # shell: bash -euxo pipefail {0}
+ # run: script/clippy
+
+ - name: Build Zed
+ run: cargo build -p zed
+
bundle:
name: Bundle macOS app
runs-on:
@@ -245,7 +245,7 @@ impl Fs for RealFs {
#[cfg(unix)]
let inode = metadata.ino();
- // todo!(windows)
+ // todo!("windows")
#[cfg(windows)]
let inode = 0;
@@ -61,6 +61,10 @@ pub(crate) fn current_platform() -> Rc<dyn Platform> {
pub(crate) fn current_platform() -> Rc<dyn Platform> {
Rc::new(LinuxPlatform::new())
}
+#[cfg(target_os = "windows")]
+pub(crate) fn current_platform() -> Rc<dyn Platform> {
+ todo!("windows")
+}
pub(crate) trait Platform: 'static {
fn background_executor(&self) -> BackgroundExecutor;
@@ -125,6 +125,9 @@ impl Platform for TestPlatform {
#[cfg(target_os = "macos")]
return Arc::new(crate::platform::mac::MacTextSystem::new());
+
+ #[cfg(target_os = "windows")]
+ todo!("windows")
}
fn run(&self, _on_finish_launching: Box<dyn FnOnce()>) {
@@ -18,12 +18,16 @@ pub async fn install_cli(cx: &AsyncAppContext) -> Result<()> {
// If the symlink is not there or is outdated, first try replacing it
// without escalating.
smol::fs::remove_file(link_path).await.log_err();
- if smol::fs::unix::symlink(&cli_path, link_path)
- .await
- .log_err()
- .is_some()
+ // todo!("windows")
+ #[cfg(not(windows))]
{
- return Ok(());
+ if smol::fs::unix::symlink(&cli_path, link_path)
+ .await
+ .log_err()
+ .is_some()
+ {
+ return Ok(());
+ }
}
// The symlink could not be created, so use osascript with admin privileges
@@ -396,7 +396,7 @@ impl TerminalBuilder {
#[cfg(unix)]
let (fd, shell_pid) = (pty.file().as_raw_fd(), pty.child().id());
- // todo!(windows)
+ // todo!("windows")
#[cfg(windows)]
let (fd, shell_pid) = (-1, 0);
@@ -664,7 +664,7 @@ impl Terminal {
fn update_process_info(&mut self) -> bool {
#[cfg(unix)]
let mut pid = unsafe { libc::tcgetpgrp(self.shell_fd as i32) };
- // todo!(windows)
+ // todo!("windows")
#[cfg(windows)]
let mut pid = -1;
if pid < 0 {
@@ -81,11 +81,15 @@ impl super::LspAdapter for OmniSharpAdapter {
archive.unpack(container_dir).await?;
}
- fs::set_permissions(
- &binary_path,
- <fs::Permissions as fs::unix::PermissionsExt>::from_mode(0o755),
- )
- .await?;
+ // todo!("windows")
+ #[cfg(not(windows))]
+ {
+ fs::set_permissions(
+ &binary_path,
+ <fs::Permissions as fs::unix::PermissionsExt>::from_mode(0o755),
+ )
+ .await?;
+ }
Ok(LanguageServerBinary {
path: binary_path,
arguments: server_binary_arguments(),
@@ -356,11 +356,15 @@ impl LspAdapter for NextLspAdapter {
}
futures::io::copy(response.body_mut(), &mut file).await?;
- fs::set_permissions(
- &binary_path,
- <fs::Permissions as fs::unix::PermissionsExt>::from_mode(0o755),
- )
- .await?;
+ // todo!("windows")
+ #[cfg(not(windows))]
+ {
+ fs::set_permissions(
+ &binary_path,
+ <fs::Permissions as fs::unix::PermissionsExt>::from_mode(0o755),
+ )
+ .await?;
+ }
}
Ok(LanguageServerBinary {
@@ -83,11 +83,15 @@ impl super::LspAdapter for LuaLspAdapter {
archive.unpack(container_dir).await?;
}
- fs::set_permissions(
- &binary_path,
- <fs::Permissions as fs::unix::PermissionsExt>::from_mode(0o755),
- )
- .await?;
+ // todo!("windows")
+ #[cfg(not(windows))]
+ {
+ fs::set_permissions(
+ &binary_path,
+ <fs::Permissions as fs::unix::PermissionsExt>::from_mode(0o755),
+ )
+ .await?;
+ }
Ok(LanguageServerBinary {
path: binary_path,
arguments: Vec::new(),
@@ -74,11 +74,15 @@ impl LspAdapter for RustLspAdapter {
let decompressed_bytes = GzipDecoder::new(BufReader::new(response.body_mut()));
let mut file = File::create(&destination_path).await?;
futures::io::copy(decompressed_bytes, &mut file).await?;
- fs::set_permissions(
- &destination_path,
- <fs::Permissions as fs::unix::PermissionsExt>::from_mode(0o755),
- )
- .await?;
+ // todo!("windows")
+ #[cfg(not(windows))]
+ {
+ fs::set_permissions(
+ &destination_path,
+ <fs::Permissions as fs::unix::PermissionsExt>::from_mode(0o755),
+ )
+ .await?;
+ }
remove_matching(&container_dir, |entry| entry != destination_path).await;
}
@@ -72,11 +72,15 @@ impl LspAdapter for TaploLspAdapter {
futures::io::copy(decompressed_bytes, &mut file).await?;
- fs::set_permissions(
- &binary_path,
- <fs::Permissions as fs::unix::PermissionsExt>::from_mode(0o755),
- )
- .await?;
+ // todo!("windows")
+ #[cfg(not(windows))]
+ {
+ fs::set_permissions(
+ &binary_path,
+ <fs::Permissions as fs::unix::PermissionsExt>::from_mode(0o755),
+ )
+ .await?;
+ }
}
Ok(LanguageServerBinary {
@@ -64,11 +64,15 @@ impl LspAdapter for ZlsAdapter {
archive.unpack(container_dir).await?;
}
- fs::set_permissions(
- &binary_path,
- <fs::Permissions as fs::unix::PermissionsExt>::from_mode(0o755),
- )
- .await?;
+ // todo!("windows")
+ #[cfg(not(windows))]
+ {
+ fs::set_permissions(
+ &binary_path,
+ <fs::Permissions as fs::unix::PermissionsExt>::from_mode(0o755),
+ )
+ .await?;
+ }
Ok(LanguageServerBinary {
path: binary_path,
arguments: vec![],