FooterWidgets

Struct FooterWidgets 

Source
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§

Source§

impl FooterWidgets

Source

pub fn push_on(self, pa: &mut Pass, push_target: &impl PushTarget)

Adds footer Widgets

Source

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.

Source

pub fn one_line(self) -> Self

Turns this footer into a Kakoune-like one liner, as opposed to a Neovim-like two liner

Source

pub fn above(self) -> Self

Changes this footer to a header

Source

pub fn prompt(self, prompt: PromptLineBuilder) -> Self

Sets the PromptLine to be used

Source

pub fn notifs(self, notifs: NotificationsOpts) -> Self

Sets the Notifications to be used

Trait Implementations§

Source§

impl Default for FooterWidgets

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

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>

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)

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)

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.