pub struct FooterWidgets { /* private fields */ }Expand description
A group of Widgets consisting of a StatusLine,
PromptLine and Notifications combo
These are the default Widgets placed in the footer position of
Duat. By default, they will be placed around the window, but
they can also be placed around individual Buffers:
setup_duat!(setup);
use duat::prelude::*;
fn setup() {
hook::add::<BufferOpened>(|pa, handle| {
FooterWidgets::new(status!(
"{name_txt}{Spacer}{} {sels_txt} {main_txt}",
mode_txt()
))
.push_on(pa, handle);
});
}This specific Widget configuration makes use of hooks in
order to show the PromptLine only when it is in focus, showing
Notifications whenever that is not the case. Like Vim/Neovim,
it also takes up two lines on the screen, one for the
StatusLine and one for the other two Widgets.
If you want a Kakoune-like one line footer, use
the one_line method. You can also use the prompt and
notifs methods in order to specify the PromptLine and
Notifications Widgets, respectively.
Additionally, you can call the above method in order to place
the footer as a header instead.
Implementations§
Sourcepub fn push_on(self, pa: &mut Pass, push_target: &impl PushTarget)
pub fn push_on(self, pa: &mut Pass, push_target: &impl PushTarget)
Adds footer Widgets
Sourcepub fn new(status_cfg: StatusLineFmt) -> Self
pub fn new(status_cfg: StatusLineFmt) -> Self
Returns a new FooterWidgets, with a StatusLine and
default PromptLine and Notifications
You can set those other two through the prompt and
notifs methods.
Sourcepub fn one_line(self) -> Self
pub fn one_line(self) -> Self
Turns this footer into a Kakoune-like one liner, as opposed to a Neovim-like two liner
Sourcepub fn prompt(self, prompt: PromptLineBuilder) -> Self
pub fn prompt(self, prompt: PromptLineBuilder) -> Self
Sets the PromptLine to be used
Sourcepub fn notifs(self, notifs: NotificationsOpts) -> Self
pub fn notifs(self, notifs: NotificationsOpts) -> Self
Sets the Notifications to be used
Trait Implementations§
Auto Trait Implementations§
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> 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>
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>
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)
&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)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.