Selection

Struct Selection 

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

A cursor in the text buffer. This is an editing cursor, -(not a printing cursor.

Implementations§

Source§

impl Selection

Source

pub fn move_to(&mut self, idx: impl TextIndex, text: &Text)

Moves to specific, pre calculated Point.

Source

pub fn move_hor(&mut self, by: i32, text: &Text) -> i32

Internal horizontal movement function

Returns true if the caret was moved

Source

pub fn move_ver( &mut self, by: i32, text: &Text, area: &Area, opts: PrintOpts, ) -> i32

Internal vertical movement function.

Returns the distance moved in lines.

Source

pub fn move_ver_wrapped( &mut self, by: i32, text: &Text, area: &Area, opts: PrintOpts, ) -> i32

Internal vertical movement function.

Returns the distance moved in wrapped lines.

Source

pub fn set_anchor(&mut self)

Sets the position of the anchor to be the same as the current cursor position in the buffer

The anchor and current act as a range of text on the buffer.

Source

pub fn unset_anchor(&mut self) -> Option<Point>

Unsets the anchor, returning its byte index if it existed

This is done so the cursor no longer has a valid selection.

Source

pub fn swap_ends(&mut self)

Switches the position of the anchor and caret

Source

pub fn caret(&self) -> Point

Returns the byte index of this Selection’s caret

Source

pub fn anchor(&self) -> Option<Point>

Returns the byte index of this Selection’s anchor, if there is one

Source

pub fn byte_range(&self, bytes: &Bytes) -> Range<usize>

Returns the byte index range between the caret and anchor

If anchor isn’t set, returns an empty range on caret.

§Note

This range is inclusive, that is, it will include the character at the end. If you use it to replace a range in the Text, know that this range will be truncated to not include the last \n, since it is not allowed to be removed.

Source

pub fn start_point(&self) -> Point

The starting Point of this Selection

Source

pub fn end_point(&self, bytes: &Bytes) -> Point

The ending Point of this Selection

Source

pub fn point_range(&self, bytes: &Bytes) -> Range<Point>

Returns the range between caret and anchor.

If anchor isn’t set, returns a range that contains only the caret’s current char.

Source

pub fn point_range_excl(&self) -> Range<Point>

Returns an exclusive range between caret and anchor

If anchor isn’t set, both Points will be the same.

Source

pub fn set_desired_cols(&mut self, v: usize, w: usize)

Sets both the desired visual column, as well as the desired wrapped column

Source

pub fn v_caret(&self, text: &Text, area: &Area, opts: PrintOpts) -> VPoint

The visual caret of this Selection

VPoints include a lot more information than regular Points, like visual distance form the left edge, what the desired distance is, etc.

Source

pub fn v_anchor( &self, text: &Text, area: &Area, opts: PrintOpts, ) -> Option<VPoint>

The visual anchor of this Selection, if it exists

VPoints include a lot more information than regular Points, like visual distance form the left edge, what the desired distance is, etc.

Source

pub fn v_range(&self, text: &Text, area: &Area, opts: PrintOpts) -> [VPoint; 2]

The visual range between the caret and anchor of this Selection

VPoints include a lot more information than regular Points, like visual distance form the left edge, what the desired distance is, etc.

Trait Implementations§

Source§

impl<'__de, __Context> BorrowDecode<'__de, __Context> for Selection

Source§

fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given BorrowDecode.
Source§

impl Clone for Selection

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

impl Debug for Selection

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<__Context> Decode<__Context> for Selection

Source§

fn decode<__D: Decoder<Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given Decode.
Source§

impl Default for Selection

Source§

fn default() -> Selection

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

impl Encode for Selection

Source§

fn encode<__E: Encoder>(&self, encoder: &mut __E) -> Result<(), EncodeError>

Encode a given type.

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> 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> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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.