Skip to main content

Editing

Struct Editing 

Source
pub struct Editing<'a> {
Show 21 fields pub selection: Option<Selection>, pub caret_on: bool, pub layouts: Option<&'a BlockLayouts>, pub annotations: &'a [(Selection, Annotation)], pub placeholder: Option<SharedString>, pub caption: Caption, pub typography: Option<Typography>, pub text_color: Option<Hsla>, pub toggle: Option<Toggle>, pub image: Option<OnImage>, pub image_menu: Option<OnImageMenu>, pub image_overlay: Option<ImageOverlay>, pub image_overlay_corner: ImageOverlayCorner, pub fence: Option<FenceHost>, pub sizing: Option<(usize, u32)>, pub table_controls: bool, pub copy: CopyButton, pub base: Option<&'a Path>, pub keep: &'a [usize], pub scroll: Option<&'a ScrollHandle>, pub jump: Option<OnJump>,
}
Expand description

What an editor paints over a document.

One value rather than six parameters, and the reason it is public: the caret, the selection, the comment washes and the layout sink all arrive together or not at all, and a read-only render sets none of them.

Fields§

§selection: Option<Selection>

The caret and what it has selected. None paints neither — a document nobody is editing.

§caret_on: bool

The blink’s lit half. A caret painted on every frame reads as frozen, and the phase belongs to whoever owns the focus.

§layouts: Option<&'a BlockLayouts>

Filled as the document paints, for a caller resolving clicks against it.

Given, only the blocks near the part of the window the document shows are built, and it answers for those alone. The rest are placed at their last measured height, or a guess at one, and held in it across frames.

§annotations: &'a [(Selection, Annotation)]

Ranges washed under the text, in the order given.

§placeholder: Option<SharedString>

Shown on the caret’s block while it holds nothing.

§caption: Caption§typography: Option<Typography>

What to set the document in. None takes the installed Typography — a caller sizing one document apart from the rest passes Typography::scaled.

§text_color: Option<Hsla>§toggle: Option<Toggle>

Makes a task block’s checkbox a control, and says who answers the press. None paints a mark.

§image: Option<OnImage>

Handles a picture click with its block index, keeping the arrow cursor. A press and release more than a couple of pixels apart is a drag and calls nothing. The press still reaches whatever is under the picture.

§image_menu: Option<OnImageMenu>

Handles a right press on a picture with its block index and the press’s window position, and stops the press. None lets it through to whatever is under the picture. crate::PictureMenu is what the menu offers.

§image_overlay: Option<ImageOverlay>

An app control inset at image_overlay_corner, visible on hover. Its presses do not reach the picture. None adds no listeners.

§image_overlay_corner: ImageOverlayCorner

Corner for the picture control; defaults to bottom-right.

§fence: Option<FenceHost>

Lets a painted fence rewrite its own code and give the keyboard back. None paints a fence that can do neither.

§sizing: Option<(usize, u32)>

A painted block held at a height while its resize handle is dragged: the block index and the height, in place of the one the document says.

§table_controls: bool

Reserves lanes around tables for editor controls.

§copy: CopyButton

Whether a fence offers to copy itself.

§base: Option<&'a Path>

The directory a relative image path is joined onto. None leaves it relative, which gpui reads against the process’s working directory.

§keep: &'a [usize]

Blocks built wherever they are, alongside the ones near the part of the window the document shows — source lines, for render_source. The caret’s and the selection anchor’s are built without being named. Only read with layouts given.

§scroll: Option<&'a ScrollHandle>

The scroll container the document sits in. When blocks above the text showing come out taller or shorter than they were placed at, its offset moves by the difference. Only read with layouts given.

§jump: Option<OnJump>

Scrolls to the heading a clicked #fragment link names, matched by crate::app::link::heading. None, or a fragment naming no heading, makes the click do nothing.

Trait Implementations§

Source§

impl<'a> Clone for Editing<'a>

Source§

fn clone(&self) -> Self

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 Default for Editing<'_>

Source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for Editing<'a>

§

impl<'a> !Send for Editing<'a>

§

impl<'a> !Sync for Editing<'a>

§

impl<'a> !UnwindSafe for Editing<'a>

§

impl<'a> Forget for Editing<'a>

§

impl<'a> Freeze for Editing<'a>

§

impl<'a> Move for Editing<'a>

§

impl<'a> Unpin for Editing<'a>

§

impl<'a> UnsafeUnpin for Editing<'a>

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
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 = !

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

fn try_from(value: U) -> Result<T, !>

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more