pub struct Roundtrip { /* private fields */ }Expand description
The roundtrip façade the agent holds.
The host implements RoundtripHost once; this type builds document and
selection contexts and applies replacements without knowing the editor.
Implementations§
Source§impl Roundtrip
impl Roundtrip
Sourcepub fn new(host: Rc<dyn RoundtripHost>) -> Self
pub fn new(host: Rc<dyn RoundtripHost>) -> Self
Wrap a host implementation.
Sourcepub fn active_document(&self, cx: &App) -> Option<EditorSnapshot>
pub fn active_document(&self, cx: &App) -> Option<EditorSnapshot>
The active document, if any.
Sourcepub fn document_context(
&self,
cx: &App,
limit: usize,
) -> Option<RoundtripContext>
pub fn document_context( &self, cx: &App, limit: usize, ) -> Option<RoundtripContext>
The active document as a prompt container.
Sourcepub fn selection_context(
&self,
window: &mut Window,
cx: &mut App,
limit: usize,
) -> Option<SelectionContext>
pub fn selection_context( &self, window: &mut Window, cx: &mut App, limit: usize, ) -> Option<SelectionContext>
The active selection as a prompt container.
Sourcepub fn apply(
&self,
target: ReplacementTarget,
text: &str,
window: &mut Window,
cx: &mut App,
) -> ReplacementOutcome
pub fn apply( &self, target: ReplacementTarget, text: &str, window: &mut Window, cx: &mut App, ) -> ReplacementOutcome
Apply a guarded replacement through the host.
Sourcepub fn insert(&self, text: &str, window: &mut Window, cx: &mut App) -> bool
pub fn insert(&self, text: &str, window: &mut Window, cx: &mut App) -> bool
Insert text at the active selection or caret.
Returns false when no document is open.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Roundtrip
impl !Send for Roundtrip
impl !Sync for Roundtrip
impl !UnwindSafe for Roundtrip
impl Freeze for Roundtrip
impl Unpin for Roundtrip
impl UnsafeUnpin for Roundtrip
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
Mutably borrows from an owned value. Read more
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,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> 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> ⓘ
Converts
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> ⓘ
Converts
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