Skip to main content

HookArgs

Enum HookArgs 

Source
pub enum HookArgs {
Show 40 variants BeforeFileOpen { path: PathBuf, }, AfterFileOpen { buffer_id: BufferId, path: PathBuf, }, BeforeFileSave { buffer_id: BufferId, path: PathBuf, }, AfterFileSave { buffer_id: BufferId, path: PathBuf, }, BufferClosed { buffer_id: BufferId, }, BeforeInsert { buffer_id: BufferId, position: usize, text: String, }, AfterInsert { buffer_id: BufferId, position: usize, text: String, affected_start: usize, affected_end: usize, start_line: usize, end_line: usize, lines_added: usize, }, BeforeDelete { buffer_id: BufferId, range: Range<usize>, }, AfterDelete { buffer_id: BufferId, range: Range<usize>, deleted_text: String, affected_start: usize, deleted_len: usize, start_line: usize, end_line: usize, lines_removed: usize, }, CursorMoved { buffer_id: BufferId, cursor_id: CursorId, old_position: usize, new_position: usize, line: usize, text_properties: Vec<HashMap<String, Value>>, }, BufferActivated { buffer_id: BufferId, }, BufferDeactivated { buffer_id: BufferId, }, DiagnosticsUpdated { uri: String, count: usize, }, PreCommand { action: Action, }, PostCommand { action: Action, }, Idle { milliseconds: u64, }, EditorInitialized, RenderStart { buffer_id: BufferId, }, RenderLine { buffer_id: BufferId, line_number: usize, byte_start: usize, byte_end: usize, content: String, }, LinesChanged { buffer_id: BufferId, lines: Vec<LineInfo>, }, PromptChanged { prompt_type: String, input: String, }, PromptConfirmed { prompt_type: String, input: String, selected_index: Option<usize>, }, PromptCancelled { prompt_type: String, input: String, }, PromptSelectionChanged { prompt_type: String, selected_index: usize, }, KeyboardShortcuts { bindings: Vec<(String, String)>, }, LspReferences { symbol: String, locations: Vec<LspLocation>, }, ViewTransformRequest { buffer_id: BufferId, split_id: SplitId, viewport_start: usize, viewport_end: usize, tokens: Vec<ViewTokenWire>, cursor_positions: Vec<usize>, }, MouseClick { column: u16, row: u16, button: String, modifiers: String, content_x: u16, content_y: u16, }, MouseMove { column: u16, row: u16, content_x: u16, content_y: u16, }, LspServerRequest { language: String, method: String, server_command: String, params: Option<String>, }, ViewportChanged { split_id: SplitId, buffer_id: BufferId, top_byte: usize, top_line: Option<usize>, width: u16, height: u16, }, LspServerError { language: String, server_command: String, error_type: String, message: String, }, LspStatusClicked { language: String, has_error: bool, }, ActionPopupResult { popup_id: String, action_id: String, }, ProcessOutput { process_id: u64, data: String, }, LanguageChanged { buffer_id: BufferId, language: String, }, ThemeInspectKey { theme_name: String, key: String, }, MouseScroll { buffer_id: BufferId, delta: i32, col: u16, row: u16, }, Resize { width: u16, height: u16, }, FocusGained,
}
Expand description

Arguments passed to hook callbacks

Variants§

§

BeforeFileOpen

Before a file is opened

Fields

§path: PathBuf
§

AfterFileOpen

After a file is successfully opened

Fields

§buffer_id: BufferId
§path: PathBuf
§

BeforeFileSave

Before a buffer is saved to disk

Fields

§buffer_id: BufferId
§path: PathBuf
§

AfterFileSave

After a buffer is successfully saved

Fields

§buffer_id: BufferId
§path: PathBuf
§

BufferClosed

A buffer was closed

Fields

§buffer_id: BufferId
§

BeforeInsert

Before text is inserted

Fields

§buffer_id: BufferId
§position: usize
§text: String
§

AfterInsert

After text was inserted

Fields

§buffer_id: BufferId
§position: usize
§text: String
§affected_start: usize

Byte position where the affected range starts

§affected_end: usize

Byte position where the affected range ends (after the inserted text)

§start_line: usize

Line number where insertion occurred (0-indexed)

§end_line: usize

Line number where insertion ended (0-indexed)

§lines_added: usize

Number of lines added by this insertion

§

BeforeDelete

Before text is deleted

Fields

§buffer_id: BufferId
§range: Range<usize>
§

AfterDelete

After text was deleted

Fields

§buffer_id: BufferId
§range: Range<usize>
§deleted_text: String
§affected_start: usize

Byte position where the deletion occurred

§deleted_len: usize

Length of the deleted content in bytes

§start_line: usize

Line number where deletion started (0-indexed)

§end_line: usize

Line number where deletion ended (0-indexed, in original buffer)

§lines_removed: usize

Number of lines removed by this deletion

§

CursorMoved

Cursor moved to a new position

Fields

§buffer_id: BufferId
§cursor_id: CursorId
§old_position: usize
§new_position: usize
§line: usize

Line number at new position (1-indexed)

§text_properties: Vec<HashMap<String, Value>>

Text properties at the new cursor position

§

BufferActivated

Buffer became active

Fields

§buffer_id: BufferId
§

BufferDeactivated

Buffer was deactivated

Fields

§buffer_id: BufferId
§

DiagnosticsUpdated

LSP diagnostics were updated for a file

Fields

§uri: String

The URI of the file that was updated

§count: usize

Number of diagnostics in the update

§

PreCommand

Before a command/action is executed

Fields

§action: Action
§

PostCommand

After a command/action was executed

Fields

§action: Action
§

Idle

Editor has been idle for N milliseconds (no input)

Fields

§milliseconds: u64
§

EditorInitialized

Editor is initializing

§

RenderStart

Rendering is starting for a buffer (called once per buffer before render_line hooks)

Fields

§buffer_id: BufferId
§

RenderLine

A line is being rendered (called during the rendering pass)

Fields

§buffer_id: BufferId
§line_number: usize
§byte_start: usize
§byte_end: usize
§content: String
§

LinesChanged

Lines have changed and need processing (batched for efficiency)

Fields

§buffer_id: BufferId
§lines: Vec<LineInfo>
§

PromptChanged

Prompt input changed (user typed/edited)

Fields

§prompt_type: String
§input: String
§

PromptConfirmed

Prompt was confirmed (user pressed Enter)

Fields

§prompt_type: String
§input: String
§selected_index: Option<usize>
§

PromptCancelled

Prompt was cancelled (user pressed Escape/Ctrl+G)

Fields

§prompt_type: String
§input: String
§

PromptSelectionChanged

Prompt suggestion selection changed (user navigated with Up/Down)

Fields

§prompt_type: String
§selected_index: usize
§

KeyboardShortcuts

Request keyboard shortcuts data (key, action) for the help buffer

Fields

§bindings: Vec<(String, String)>
§

LspReferences

LSP find references response received

Fields

§symbol: String

The symbol name being queried

§locations: Vec<LspLocation>

The locations where the symbol is referenced

§

ViewTransformRequest

View transform request

Fields

§buffer_id: BufferId
§split_id: SplitId
§viewport_start: usize

Byte offset of the viewport start

§viewport_end: usize

Byte offset of the viewport end

§tokens: Vec<ViewTokenWire>

Base tokens (Text, Newline, Space) from the source

§cursor_positions: Vec<usize>

Byte positions of all cursors in this buffer

§

MouseClick

Mouse click event

Fields

§column: u16

Column (x coordinate) in screen cells

§row: u16

Row (y coordinate) in screen cells

§button: String

Mouse button: “left”, “right”, “middle”

§modifiers: String

Modifier keys

§content_x: u16

Content area X offset

§content_y: u16

Content area Y offset

§

MouseMove

Mouse move/hover event

Fields

§column: u16

Column (x coordinate) in screen cells

§row: u16

Row (y coordinate) in screen cells

§content_x: u16

Content area X offset

§content_y: u16

Content area Y offset

§

LspServerRequest

LSP server request (server -> client)

Fields

§language: String

The language/server that sent the request

§method: String

The JSON-RPC method name

§server_command: String

The server command used to spawn this LSP

§params: Option<String>

The request parameters as a JSON string

§

ViewportChanged

Viewport changed (scrolled or resized)

Fields

§split_id: SplitId
§buffer_id: BufferId
§top_byte: usize
§top_line: Option<usize>
§width: u16
§height: u16
§

LspServerError

LSP server failed to start or crashed

Fields

§language: String

The language that failed

§server_command: String

The server command that failed

§error_type: String

Error type: “not_found”, “spawn_failed”, “timeout”, “crash”

§message: String

Human-readable error message

§

LspStatusClicked

User clicked the LSP status indicator

Fields

§language: String

The language of the current buffer

§has_error: bool

Whether there’s an active error

§

ActionPopupResult

User selected an action from an action popup

Fields

§popup_id: String

The popup ID

§action_id: String

The action ID selected, or “dismissed”

§

ProcessOutput

Background process output (streaming)

Fields

§process_id: u64

The process ID

§data: String

The output data

§

LanguageChanged

Buffer language was changed (e.g. via “Set Language” command or Save-As)

Fields

§buffer_id: BufferId
§language: String

The new language identifier (e.g., “markdown”, “rust”, “text”)

§

ThemeInspectKey

Request to inspect a theme key in the theme editor

Fields

§theme_name: String

The name of the current theme

§key: String

The theme key to inspect (e.g. “editor.bg”)

§

MouseScroll

Mouse scroll event (wheel up/down)

Fields

§buffer_id: BufferId
§delta: i32

Scroll delta: negative = up, positive = down (typically ±3)

§col: u16

Mouse column (0-based, terminal origin top-left)

§row: u16

Mouse row (0-based, terminal origin top-left)

§

Resize

Terminal was resized

Fields

§width: u16
§height: u16
§

FocusGained

Terminal focus was gained (e.g. user switched back to the editor)

Trait Implementations§

Source§

impl Clone for HookArgs

Source§

fn clone(&self) -> HookArgs

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 HookArgs

Source§

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

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

impl Serialize for HookArgs

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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> 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 + Sync + Send>

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> 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<'a, T> FromIn<'a, T> for T

Source§

fn from_in(t: T, _: &'a Allocator) -> T

Converts to this type from the input type within the given allocator.
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<'a, T, U> IntoIn<'a, U> for T
where U: FromIn<'a, T>,

Source§

fn into_in(self, allocator: &'a Allocator) -> U

Converts this type into the (usually inferred) input type within the given allocator.
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
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> Same for T

Source§

type Output = T

Should always be Self
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> TryClone for T
where T: Clone,

Source§

fn try_clone(&self) -> Result<T, Error>

Clones self, possibly returning an error.
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.
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
Source§

impl<T> ParallelSend for T