37 lines · 1021 B · Rust
RawDownload
use collections::HashMap;pub use ipc_channel::ipc;use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize)]pub struct IpcHandshake {    pub requests: ipc::IpcSender<CliRequest>,    pub responses: ipc::IpcReceiver<CliResponse>,} #[derive(Debug, Serialize, Deserialize)]pub enum CliRequest {    Open {        paths: Vec<String>,        urls: Vec<String>,        diff_paths: Vec<[String; 2]>,        diff_all: bool,        wsl: Option<String>,        wait: bool,        open_new_workspace: Option<bool>,        reuse: bool,        env: Option<HashMap<String, String>>,        user_data_dir: Option<String>,    },} #[derive(Debug, Serialize, Deserialize)]pub enum CliResponse {    Ping,    Stdout { message: String },    Stderr { message: String },    Exit { status: i32 },} /// When Zed started not as an *.app but as a binary (e.g. local development),/// there's a possibility to tell it to behave "regularly".pub const FORCE_CLI_MODE_ENV_VAR_NAME: &str = "ZED_FORCE_CLI_MODE";