Skip to main content

TextCursor

Struct TextCursor 

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

A cursor into a TextDocument.

Multiple cursors can coexist on the same document (like Qt’s QTextCursor). When any cursor edits text, all other cursors’ positions are automatically adjusted by the document.

Cloning a cursor creates an independent cursor at the same position.

Implementations§

Source§

impl TextCursor

Source

pub fn position(&self) -> usize

Current cursor position (between characters).

Source

pub fn anchor(&self) -> usize

Anchor position. Equal to position() when no selection.

Source

pub fn has_selection(&self) -> bool

Returns true if there is a selection.

Source

pub fn selection_start(&self) -> usize

Start of the selection (min of position and anchor).

Source

pub fn selection_end(&self) -> usize

End of the selection (max of position and anchor).

Source

pub fn selected_text(&self) -> Result<String>

Get the selected text. Returns empty string if no selection.

Source

pub fn clear_selection(&self)

Collapse the selection by moving anchor to position.

Source

pub fn at_block_start(&self) -> bool

True if the cursor is at the start of a block.

Source

pub fn at_block_end(&self) -> bool

True if the cursor is at the end of a block.

Source

pub fn at_start(&self) -> bool

True if the cursor is at position 0.

Source

pub fn at_end(&self) -> bool

True if the cursor is at the very end of the document.

Source

pub fn block_number(&self) -> usize

The block number (0-indexed) containing the cursor.

Source

pub fn position_in_block(&self) -> usize

The cursor’s column within the current block (0-indexed).

Source

pub fn set_position(&self, position: usize, mode: MoveMode)

Set the cursor to an absolute position.

Source

pub fn move_position( &self, operation: MoveOperation, mode: MoveMode, n: usize, ) -> bool

Move the cursor by a semantic operation.

n is used as a repeat count for character-level movements (NextCharacter, PreviousCharacter, Left, Right). For all other operations it is ignored. Returns true if the cursor moved.

Source

pub fn select(&self, selection: SelectionType)

Select a region relative to the cursor position.

Source

pub fn insert_text(&self, text: &str) -> Result<()>

Insert plain text at the cursor. Replaces selection if any.

Source

pub fn insert_formatted_text( &self, text: &str, format: &TextFormat, ) -> Result<()>

Insert text with a specific character format. Replaces selection if any.

Source

pub fn insert_block(&self) -> Result<()>

Insert a block break (new paragraph). Replaces selection if any.

Source

pub fn insert_html(&self, html: &str) -> Result<()>

Insert an HTML fragment at the cursor position. Replaces selection if any.

Source

pub fn insert_markdown(&self, markdown: &str) -> Result<()>

Insert a Markdown fragment at the cursor position. Replaces selection if any.

Source

pub fn insert_fragment(&self, fragment: &DocumentFragment) -> Result<()>

Insert a document fragment at the cursor. Replaces selection if any.

Source

pub fn selection(&self) -> DocumentFragment

Extract the current selection as a DocumentFragment.

Source

pub fn insert_image(&self, name: &str, width: u32, height: u32) -> Result<()>

Insert an image at the cursor.

Source

pub fn insert_frame(&self) -> Result<()>

Insert a new frame at the cursor.

Source

pub fn delete_char(&self) -> Result<()>

Delete the character after the cursor (Delete key).

Source

pub fn delete_previous_char(&self) -> Result<()>

Delete the character before the cursor (Backspace key).

Source

pub fn remove_selected_text(&self) -> Result<String>

Delete the selected text. Returns the deleted text. No-op if no selection.

Source

pub fn create_list(&self, style: ListStyle) -> Result<()>

Turn the block(s) in the selection into a list.

Source

pub fn insert_list(&self, style: ListStyle) -> Result<()>

Insert a new list item at the cursor position.

Source

pub fn char_format(&self) -> Result<TextFormat>

Get the character format at the cursor position.

Source

pub fn block_format(&self) -> Result<BlockFormat>

Get the block format of the block containing the cursor.

Source

pub fn set_char_format(&self, format: &TextFormat) -> Result<()>

Set the character format for the selection.

Source

pub fn merge_char_format(&self, format: &TextFormat) -> Result<()>

Merge a character format into the selection.

Source

pub fn set_block_format(&self, format: &BlockFormat) -> Result<()>

Set the block format for the current block (or all blocks in selection).

Source

pub fn set_frame_format( &self, frame_id: usize, format: &FrameFormat, ) -> Result<()>

Set the frame format.

Source

pub fn begin_edit_block(&self)

Begin a group of operations that will be undone as a single unit.

Source

pub fn end_edit_block(&self)

End the current edit block.

Source

pub fn join_previous_edit_block(&self)

Alias for begin_edit_block.

Semantically indicates that the new composite should be merged with the previous one (e.g., consecutive keystrokes grouped into a single undo unit). The current backend treats this identically to begin_edit_block; future versions may implement automatic merging.

Trait Implementations§

Source§

impl Clone for TextCursor

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. 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> 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.