Skip to main content

Editor

Struct Editor 

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

A multi-line text editor component.

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 hjkl, dd, yy, etc.).

Supports undo/redo, kill-ring (yank/yank-pop), history navigation, word-wise movement, and paste detection for large inserts.

Implementations§

Source§

impl Editor

Source

pub fn new() -> Self

Create a new empty editor 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 editor 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) -> VimMode

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

Source

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

Switch to the given vim mode.

Source

pub fn text(&self) -> &str

Borrow the current text content.

Source

pub fn cursor_grapheme(&self) -> usize

Current cursor position 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.

Source

pub fn push_history(&mut self)

Append the current text to the history ring buffer.

History is capped at max_history items (default 100). The history index is reset so subsequent Up/Down navigation starts from the newest entry.

Trait Implementations§

Source§

impl Clone for Editor

Source§

fn clone(&self) -> Editor

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Component for Editor

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 Editor

Source§

fn default() -> Self

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

impl Focusable for Editor

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§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.