From 9787710d59a03d72b25515a1cb456c66817bb805 Mon Sep 17 00:00:00 2001 From: Konstantin Fickel Date: Sun, 19 Apr 2026 17:58:54 +0200 Subject: [PATCH] feat: add zed extension --- flake.nix | 40 +++- zed-extension/Cargo.lock | 341 +++++++++++++++++++++++++++++++++++ zed-extension/Cargo.toml | 10 + zed-extension/extension.toml | 11 ++ zed-extension/src/lib.rs | 23 +++ 5 files changed, 424 insertions(+), 1 deletion(-) create mode 100644 zed-extension/Cargo.lock create mode 100644 zed-extension/Cargo.toml create mode 100644 zed-extension/extension.toml create mode 100644 zed-extension/src/lib.rs diff --git a/flake.nix b/flake.nix index 12cdf69..5cc7e3c 100644 --- a/flake.nix +++ b/flake.nix @@ -89,6 +89,43 @@ } ); + mkZedExtension = + system: + let + pkgs = mkPkgs system; + toolchain = pkgs.rust-bin.stable.latest.default.override { + targets = [ "wasm32-wasip1" ]; + }; + craneLib = (crane.mkLib pkgs).overrideToolchain toolchain; + extensionSrc = ./zed-extension; + vendoredDeps = craneLib.vendorCargoDeps { src = extensionSrc; }; + in + pkgs.stdenv.mkDerivation { + pname = "streamd-zed-extension"; + version = "0.0.1"; + src = extensionSrc; + + nativeBuildInputs = [ toolchain ]; + + buildPhase = '' + export HOME=$TMPDIR + mkdir -p .cargo + cat > .cargo/config.toml < Self { + StreamdExtension + } + + fn language_server_command( + &mut self, + _language_server_id: &LanguageServerId, + _worktree: &Worktree, + ) -> Result { + Ok(Command { + command: "streamd".into(), + args: vec!["lsp".into()], + env: vec![], + }) + } +} + +zed::register_extension!(StreamdExtension);