This prevents child processes (e.g. shells) from inheriting it. This generally isn't an issue, since zed is the only thing that cares about it, but if you're trying to run zed *from* zed, you would first need to unset it manually. Release Notes: - N/A
41 lines
1.2 KiB
Rust
41 lines
1.2 KiB
Rust
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".
|
|
///
|
|
/// Note that in the main zed binary, this variable is unset after it's read for the first time,
|
|
/// therefore it should always be accessed through the `FORCE_CLI_MODE` static.
|
|
pub const FORCE_CLI_MODE_ENV_VAR_NAME: &str = "ZED_FORCE_CLI_MODE";
|