pub struct ProgrammaticDiffPanes {
pub origin_pane: PaneId,
pub diff_panes: Vec<PaneId>,
pub diff_buffers: Vec<BufferId>,
pub origin_session: u64,
}Expand description
I4 (openDiff) D-fix.1: the pane/buffer bookkeeping needed to tear a
programmatic side-by-side diff down cleanly — close the two transient diff
panes and return focus to the pane the openDiff was launched from (the
:claude terminal). Recorded by
Editor::open_programmatic_diff, consumed by
Editor::finish_programmatic_diff_panes on :diff-accept / :diff-reject.
Keyed in Editor::programmatic_diff_panes by the session’s primary
(proposed / right) BufferId.
Fields§
§origin_pane: PaneIdThe pane that was active when openDiff fired (the :claude terminal
pane). Focus returns here on resolve — Option A: claude stays put while
the diff opens in transient panes to its right.
diff_panes: Vec<PaneId>The transient baseline + proposed panes opened for the diff; both closed
on resolve. The origin_pane is never in this list.
diff_buffers: Vec<BufferId>The throwaway in-memory baseline + proposed buffers; removed from the
registry on resolve so they don’t linger in :ls.
origin_session: u64D-fix.6: the IDE-peer connection that opened this diff (its
ProgrammaticDiffRequest.origin_session). A session-scoped close
(close_tab / closeAllDiffTabs from that same connection) tears
down only the diffs whose origin_session matches — so one agent
session can never close another’s diffs. 0 = no originating session
(a non-IDE producer), matched by no connection’s close.
Trait Implementations§
Source§impl Clone for ProgrammaticDiffPanes
impl Clone for ProgrammaticDiffPanes
Source§fn clone(&self) -> ProgrammaticDiffPanes
fn clone(&self) -> ProgrammaticDiffPanes
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 ProgrammaticDiffPanes
impl RefUnwindSafe for ProgrammaticDiffPanes
impl Send for ProgrammaticDiffPanes
impl Sync for ProgrammaticDiffPanes
impl Unpin for ProgrammaticDiffPanes
impl UnsafeUnpin for ProgrammaticDiffPanes
impl UnwindSafe for ProgrammaticDiffPanes
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more