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
AfterFileOpen
After a file is successfully opened
BeforeFileSave
Before a buffer is saved to disk
AfterFileSave
After a buffer is successfully saved
BufferClosed
A buffer was closed
BeforeInsert
Before text is inserted
AfterInsert
After text was inserted
Fields
BeforeDelete
Before text is deleted
AfterDelete
After text was deleted
Fields
CursorMoved
Cursor moved to a new position
Fields
BufferActivated
Buffer became active
BufferDeactivated
Buffer was deactivated
DiagnosticsUpdated
LSP diagnostics were updated for a file
Fields
PreCommand
Before a command/action is executed
PostCommand
After a command/action was executed
Idle
Editor has been idle for N milliseconds (no input)
EditorInitialized
Editor is initializing
RenderStart
Rendering is starting for a buffer (called once per buffer before render_line hooks)
RenderLine
A line is being rendered (called during the rendering pass)
LinesChanged
Lines have changed and need processing (batched for efficiency)
PromptChanged
Prompt input changed (user typed/edited)
PromptConfirmed
Prompt was confirmed (user pressed Enter)
PromptCancelled
Prompt was cancelled (user pressed Escape/Ctrl+G)
PromptSelectionChanged
Prompt suggestion selection changed (user navigated with Up/Down)
KeyboardShortcuts
Request keyboard shortcuts data (key, action) for the help buffer
LspReferences
LSP find references response received
Fields
locations: Vec<LspLocation>The locations where the symbol is referenced
ViewTransformRequest
View transform request
Fields
tokens: Vec<ViewTokenWire>Base tokens (Text, Newline, Space) from the source
MouseClick
Mouse click event
Fields
Mouse button: “left”, “right”, “middle”
MouseMove
Mouse move/hover event
Fields
LspServerRequest
LSP server request (server -> client)
Fields
ViewportChanged
Viewport changed (scrolled or resized)
Fields
LspServerError
LSP server failed to start or crashed
Fields
LspStatusClicked
User clicked the LSP status indicator
Fields
ActionPopupResult
User selected an action from an action popup
ProcessOutput
Background process output (streaming)
LanguageChanged
Buffer language was changed (e.g. via “Set Language” command or Save-As)
Fields
ThemeInspectKey
Request to inspect a theme key in the theme editor
Fields
MouseScroll
Mouse scroll event (wheel up/down)
Fields
Resize
Terminal was resized
FocusGained
Terminal focus was gained (e.g. user switched back to the editor)