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

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

impl Serialize for HookArgs

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::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> 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, 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.