cli.rs

 1pub use ipc_channel::ipc;
 2use serde::{Deserialize, Serialize};
 3
 4#[derive(Serialize, Deserialize)]
 5pub struct IpcHandshake {
 6    pub requests: ipc::IpcSender<CliRequest>,
 7    pub responses: ipc::IpcReceiver<CliResponse>,
 8}
 9
10#[derive(Debug, Serialize, Deserialize)]
11pub enum CliRequest {
12    Open {
13        paths: Vec<String>,
14        urls: Vec<String>,
15        wait: bool,
16        open_new_workspace: Option<bool>,
17        dev_server_token: Option<String>,
18    },
19}
20
21#[derive(Debug, Serialize, Deserialize)]
22pub enum CliResponse {
23    Ping,
24    Stdout { message: String },
25    Stderr { message: String },
26    Exit { status: i32 },
27}
28
29/// When Zed started not as an *.app but as a binary (e.g. local development),
30/// there's a possibility to tell it to behave "regularly".
31pub const FORCE_CLI_MODE_ENV_VAR_NAME: &str = "ZED_FORCE_CLI_MODE";