cli.rs

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