pub struct VimState<I: ApplicationInfo = EmptyInfo> { /* private fields */ }
Expand description
This wraps both action specific context, and persistent context.
Trait Implementations§
source§impl<I: ApplicationInfo> Clone for VimState<I>
impl<I: ApplicationInfo> Clone for VimState<I>
source§impl<I: ApplicationInfo> Default for VimState<I>
impl<I: ApplicationInfo> Default for VimState<I>
source§impl<I: ApplicationInfo> From<VimState<I>> for EditContext
impl<I: ApplicationInfo> From<VimState<I>> for EditContext
source§impl<I: ApplicationInfo> InputKeyState<TerminalKey, CommonKeyClass> for VimState<I>
impl<I: ApplicationInfo> InputKeyState<TerminalKey, CommonKeyClass> for VimState<I>
source§fn event(
&mut self,
ev: &EdgeEvent<TerminalKey, CommonKeyClass>,
ke: &TerminalKey
)
fn event( &mut self, ev: &EdgeEvent<TerminalKey, CommonKeyClass>, ke: &TerminalKey )
Update the context as needed after a
Key
has matched an EdgeEvent.source§fn get_cursor_indicator(&self) -> Option<char>
fn get_cursor_indicator(&self) -> Option<char>
Return a character to show at the current cursor position.
source§impl<I: ApplicationInfo> InputState for VimState<I>
impl<I: ApplicationInfo> InputState for VimState<I>
§type Output = EditContext
type Output = EditContext
The output context type returned along with actions.
source§fn merge(original: EditContext, overrides: &EditContext) -> EditContext
fn merge(original: EditContext, overrides: &EditContext) -> EditContext
Copy any overriding values into an
Output
object.source§impl<I: ApplicationInfo> ModeKeys<TerminalKey, Action<I>, VimState<I>> for VimMode
impl<I: ApplicationInfo> ModeKeys<TerminalKey, Action<I>, VimState<I>> for VimMode
source§impl<I: ApplicationInfo> ModeSequence<RepeatType, Action<I>, VimState<I>> for VimMode
impl<I: ApplicationInfo> ModeSequence<RepeatType, Action<I>, VimState<I>> for VimMode
source§fn sequences(
&self,
action: &Action<I>,
ctx: &EditContext
) -> Vec<(RepeatType, SequenceStatus)>
fn sequences( &self, action: &Action<I>, ctx: &EditContext ) -> Vec<(RepeatType, SequenceStatus)>
Controls how and what gets included in the sequences of actions tracked by
ModalMachine. When implementing, if there are actions that trigger calls to
BindingMachine::repeat, be careful that they do not get included in a way that can
create cycles. Read more
source§impl<I: PartialEq + ApplicationInfo> PartialEq for VimState<I>
impl<I: PartialEq + ApplicationInfo> PartialEq for VimState<I>
impl<I: Eq + ApplicationInfo> Eq for VimState<I>
impl<I: ApplicationInfo> StructuralPartialEq for VimState<I>
Auto Trait Implementations§
impl<I> Freeze for VimState<I>
impl<I> RefUnwindSafe for VimState<I>where
I: RefUnwindSafe,
impl<I> Send for VimState<I>where
I: Send,
impl<I> Sync for VimState<I>where
I: Sync,
impl<I> Unpin for VimState<I>where
I: Unpin,
impl<I> UnwindSafe for VimState<I>where
I: UnwindSafe,
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
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> DowncastSync for T
impl<T> DowncastSync for T
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.