pub enum AppEvent {
Show 39 variants
Input(InputEvent),
OpenScreen(ScreenEvent),
Quit,
Redraw,
RagStatus(RagStatus),
Autosave,
AutosaveCompleted {
path: VaultPath,
saved_revision: Option<NonZeroU64>,
title: Option<String>,
},
OpenPath {
path: VaultPath,
emphasis: Option<Vec<String>>,
},
OpenAttachment(VaultPath),
FocusSidebar,
OpenDrawerView(DrawerView),
RunTagQuery(String),
JumpToHeading(String),
ExecuteLeaderAction(LeaderAction),
FlashMessage(String),
Update(UpdateFlow),
ApplyTheme {
theme: Box<Theme>,
persist: bool,
},
LinkTargetMeta {
target: String,
count: usize,
},
BacklinkCountLoaded {
path: VaultPath,
count: usize,
},
GitStatusLoaded(Option<String>),
PreferencesSaved,
OnboardingFinished,
ClosePreferences,
OpenFileBrowser,
TriggerFastReindex,
TriggerFullReindex,
IndexingDone(Result<Duration, String>),
OpenJournal,
CloseOverlay,
FollowLink(String),
FollowLabel(String),
InsertAtCursor(String),
FileOp(FileOp),
OverlayData(OverlayData),
Ask(AskData),
VaultConflict(String),
WorkspaceSwitched(String),
SavedSearch(SavedSearchFlow),
SortChanged {
target: SortTarget,
field: SortField,
order: SortOrder,
group_directories: bool,
persist: bool,
},
}Expand description
All events that flow through the system — both input events (from crossterm) and app-level messages sent by components / screens to the main loop.
Variants§
Input(InputEvent)
OpenScreen(ScreenEvent)
Quit
Redraw
RagStatus(RagStatus)
Background RAG sync task reporting its connection/sync status. Rendered in the editor footer.
Autosave
AutosaveCompleted
Background autosave task finished. saved_revision carries the
editor’s content_revision at the moment the save was issued
on success, None if the write failed. The editor screen uses
path to ignore stale completions for notes the user has
already navigated away from, and saved_revision to clear the
dirty flag iff the buffer is still at that revision (i.e. no
edits during the save). NonZeroU64 because the editor’s
content_revision is never zero.
Fields
saved_revision: Option<NonZeroU64>OpenPath
Open a note (or directory) — emphasis carries the originating
query’s needles when the open comes from a query result, so the
editor lights up the matched spans (spec §5.1). Use
AppEvent::open for the plain case.
OpenAttachment(VaultPath)
Open an attachment (a non-note file) in the editor area’s read-only attachment view. Sent by the file browser when an attachment row is activated.
FocusSidebar
OpenDrawerView(DrawerView)
Switch the drawer to the given view and reveal it (sent by the activity rail and, later, by leader paths / mouse clicks).
RunTagQuery(String)
Run the query #<label> in the FIND drawer (sent by the TAGS drawer).
JumpToHeading(String)
Jump the editor cursor to the first heading with this text (sent by the OUTLINE drawer).
ExecuteLeaderAction(LeaderAction)
Run a leader-tree action (sent by the command palette after it has closed itself, so the action sees no open overlay).
FlashMessage(String)
Show a transient footer flash — async tasks report results with it.
Update(UpdateFlow)
The self-update lifecycle (one owner in main.rs for the app-global bookkeeping, one in the editor screen for display).
ApplyTheme
Apply (and optionally persist) a resolved theme — sent by the theme
picker: previews on selection move, persists on Enter. Carries the
full Theme so applying never re-reads the themes directory.
LinkTargetMeta
Async-loaded backlink count for the link target under the editor
cursor (status line 2’s → target · N backlinks affordance).
BacklinkCountLoaded
Async-loaded backlink count for the note at path (status line 2).
GitStatusLoaded(Option<String>)
Async-loaded workspace git summary for the status bar, None when
the workspace is not a git repository.
PreferencesSaved
Sent by PreferencesScreen when user confirms Save. The shared settings reference already contains the updated values.
OnboardingFinished
Sent by OnboardingScreen when the user confirms Finish on the summary step. The shared settings already contain the committed draft; main.rs rebuilds the vault and navigates to Start (same as PreferencesSaved).
ClosePreferences
Sent by PreferencesScreen when user discards or closes unchanged.
OpenFileBrowser
Sent by VaultSection; PreferencesScreen::handle_app_message intercepts.
TriggerFastReindex
Sent by IndexingSection; PreferencesScreen intercepts.
TriggerFullReindex
IndexingDone(Result<Duration, String>)
Sent by indexing tokio task on completion.
OpenJournal
Open (or create) today’s journal entry and switch to it in the editor.
CloseOverlay
Dismiss the active editor overlay (note browser, Saved Searches modal,
or dialog). The single close path for everything owned by OverlayHost.
FollowLink(String)
Follow the link under the editor cursor: note name/path or external URL.
FollowLabel(String)
Open the search modal pre-filled with #<name> to browse notes by label.
InsertAtCursor(String)
Insert raw text at the editor’s cursor (replacing any active selection). Used by the screen layer to deliver async results back to the editor — e.g. the markdown link generated after a clipboard image is saved as an attachment.
FileOp(FileOp)
File-operation requests and confirmations — owned by the editor
screen’s handle_file_op.
OverlayData(OverlayData)
An async result addressed to the open overlay (see Overlay data in
CONTEXT.md). Routed only to the OverlayHost; with no (or the wrong)
overlay open it is stale by definition and dropped.
Ask(AskData)
An async result addressed to the Ask workspace (see CONTEXT.md: Ask
workspace). Its own family — Ask is a panel, not an overlay, so it is
never routed through OverlayData.
VaultConflict(String)
A vault was found to be structurally unusable (conflicts, invalid layout, etc.). Carries a formatted, human-readable error message.
Handled by handle_app_message in main.rs, which clears the workspace,
saves settings, and opens the settings screen with an error overlay.
To add a new conflict source: emit this event from the detection site; no
other files need to change.
WorkspaceSwitched(String)
User switched to a different workspace. Carries the workspace name. Handled by main.rs to rebuild the vault and navigate to StartScreen.
SavedSearch(SavedSearchFlow)
The saved-search save/select flow — owned by the editor screen’s
handle_saved_search.
SortChanged
Sort selection changed in the sort dialog — apply live to target.
When persist is set (sidebar’s “save as default”), also write the
choice to settings. group_directories is sidebar-only (the query panel
ignores it).
Implementations§
Source§impl AppEvent
impl AppEvent
pub fn send_input(event: InputEvent) -> Self
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for AppEvent
impl !UnwindSafe for AppEvent
impl Freeze for AppEvent
impl Send for AppEvent
impl Sync for AppEvent
impl Unpin for AppEvent
impl UnsafeUnpin for AppEvent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more