pub struct ModeSet<M: Mode>(/* private fields */);Expand description
Hookable: Lets you modify a Mode as it is set
§Arguments
- The new mode.
- Its widget.
This hook is very useful if you want to, for example, set
different options upon switching to modes, depending on things
like the language of a Buffer.
§Aliases
Since every Mode implements the HookAlias trait, given a
duat_kak plugin imported as kak, instead of writing this:
setup_duat!(setup);
use duat::prelude::*;
use duat_kak::Normal;
fn setup() {
hook::add::<ModeSet<Normal>>(|pa, (normal, handle)|
Ok(normal.indent_on_capital_i = true)
);
}You can just write this:
setup_duat!(setup);
use duat::prelude::*;
use duat_kak::Normal;
fn setup() {
hook::add::<Normal>(|pa, (normal, handle)|
Ok(normal.indent_on_capital_i = true)
);
}§Note
You should try to avoid more than one Mode with the same name.
This can happen if you’re using two structs with the same name,
but from different crates.
Trait Implementations§
Auto Trait Implementations§
impl<M> !Freeze for ModeSet<M>
impl<M> !RefUnwindSafe for ModeSet<M>
impl<M> Send for ModeSet<M>
impl<M> Sync for ModeSet<M>where
M: Sync,
impl<M> Unpin for ModeSet<M>where
M: Unpin,
impl<M> !UnwindSafe for ModeSet<M>
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.