Skip to main content

Input

Struct Input 

Source
pub struct Input { /* private fields */ }
Expand description

Single-line text input with horizontal scrolling.

Defaults to Emacs-style bindings (Ctrl+A, Ctrl+E, Ctrl+K, etc.). Call set_vim_mode_enabled to opt into vim-style modal editing (Normal/Insert mode with hl, x, i, etc.).

The input scrolls horizontally when the text exceeds the render width so that the cursor always remains visible. Supports undo, yank, and kill-ring.

Implementations§

Source§

impl Input

Source

pub fn new() -> Self

Create a new empty input field with Emacs-style bindings.

Source

pub fn vim_mode_enabled(&self) -> bool

Returns true if vim modal editing is enabled.

Source

pub fn set_vim_mode_enabled(&mut self, enabled: bool)

Enable or disable vim modal editing.

When enabled the input starts in Normal mode; press i to insert, Escape to return to Normal. When disabled, Emacs-style bindings are always active.

Source

pub fn mode(&self) -> InputVimMode

Current vim mode (only meaningful when vim mode is enabled).

Source

pub fn set_mode(&mut self, mode: InputVimMode)

Switch to the given vim mode.

Source

pub fn text(&self) -> &str

Borrow the current text content.

Source

pub fn cursor(&self) -> usize

Current cursor position in grapheme indices.

Source

pub fn scroll(&self) -> usize

Current horizontal scroll offset in grapheme indices.

Source

pub fn set_text(&mut self, text: impl Into<String>)

Replace the entire text buffer and move the cursor to the end.

Trait Implementations§

Source§

impl Component for Input

Source§

fn render(&self, width: u16) -> Result<Rendered, RenderError>

Render this component into lines of text at the given width. Read more
Source§

fn handle_input(&mut self, event: &Event) -> InputResult

Handle an input event (key press, resize, mouse, etc.). Read more
Source§

fn as_focusable(&self) -> Option<&dyn Focusable>

Cast this component to a Focusable reference, if supported.
Source§

fn as_focusable_mut(&mut self) -> Option<&mut dyn Focusable>

Cast this component to a mutable Focusable reference, if supported.
Source§

fn render_rect(&self, rect: Rect) -> Result<Rendered, RenderError>

Render this component into a specific rectangular area. Read more
Source§

fn wants_key_release(&self) -> bool

Returns true if this component wants to receive KeyEventKind::Release events in addition to Press / Repeat. Read more
Source§

impl Default for Input

Source§

fn default() -> Self

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

impl Focusable for Input

Source§

fn focused(&self) -> bool

Returns true when this component currently has focus.
Source§

fn set_focused(&mut self, focused: bool)

Set or clear the focused state.

Auto Trait Implementations§

§

impl !Freeze for Input

§

impl !RefUnwindSafe for Input

§

impl !Sync for Input

§

impl Send for Input

§

impl Unpin for Input

§

impl UnsafeUnpin for Input

§

impl UnwindSafe for Input

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> 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.