pub struct SpawnConfig {
pub program: String,
pub args: Vec<String>,
pub cwd: Option<PathBuf>,
pub env: Vec<(String, String)>,
pub rows: u16,
pub cols: u16,
pub scrollback_lines: u32,
pub paint_request: Option<Arc<Notify>>,
}Expand description
Inputs to spawn.
Fields§
§program: StringPath of the program to exec (e.g. /usr/bin/zsh,
/bin/sh, cargo).
args: Vec<String>Arguments for the program (excluding argv[0]).
cwd: Option<PathBuf>Spawn working directory. None = inherit parent’s cwd.
env: Vec<(String, String)>I5: extra environment variables to inject into the child, in addition to
the inherited parent environment. Applied as CommandBuilder::env(k, v)
per pair. Empty for an ordinary :terminal; the Claude Code IDE launch
(:claude) injects CLAUDE_CODE_SSE_PORT + ENABLE_IDE_INTEGRATION so
the spawned agent connects back to this editor’s IDE server.
rows: u16Initial PTY size (rows, cols).
cols: u16§scrollback_lines: u32T3 (2026-05-25): scrollback ring capacity in lines. 0
disables scrollback. Caller resolves the
terminal.scrollback-lines typed option and passes the
result here.
paint_request: Option<Arc<Notify>>Optional repaint notifier — fired by the reader task
after every published snapshot. Event-driven renderers
(GPUI) need this wake to know terminal output has
arrived; per-tick renderers (TUI) observe the publish
on their next tick and don’t strictly need it. Wired by
the host from Editor::paint_request so terminal output
drives the same bridge the highlights worker uses.
Trait Implementations§
Source§impl Clone for SpawnConfig
impl Clone for SpawnConfig
Source§fn clone(&self) -> SpawnConfig
fn clone(&self) -> SpawnConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for SpawnConfig
impl RefUnwindSafe for SpawnConfig
impl Send for SpawnConfig
impl Sync for SpawnConfig
impl Unpin for SpawnConfig
impl UnsafeUnpin for SpawnConfig
impl UnwindSafe for SpawnConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.