pub enum AppEvent {
Show 55 variants
Input(InputEvent),
OpenScreen(ScreenEvent),
Quit,
Redraw,
Autosave,
AutosaveCompleted {
path: VaultPath,
saved_revision: Option<NonZeroU64>,
title: Option<String>,
},
OpenPath {
path: VaultPath,
emphasis: Option<Vec<String>>,
},
FocusSidebar,
OpenDrawerView(DrawerView),
RunTagQuery(String),
JumpToHeading(String),
ExecuteLeaderAction(LeaderAction),
FlashMessage(String),
UpdateAvailable(UpdateStatus),
ApplyUpdate,
DismissUpdate(String),
ShowUpdateDialog,
UpdateApplied,
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),
ShowFileOpsMenu(VaultPath),
ShowDeleteDialog(VaultPath),
ShowRenameDialog(VaultPath),
ShowMoveDialog(VaultPath),
EntryDeleted(VaultPath),
EntryRenamed {
from: VaultPath,
to: VaultPath,
},
EntryMoved {
from: VaultPath,
to: VaultPath,
},
EntryCreated(VaultPath),
DialogError(String),
VaultConflict(String),
RenameValidation {
available: bool,
},
MoveDirectoriesLoaded(Vec<VaultPath>),
MoveFilterResults(Vec<VaultPath>),
MoveDestValidation {
available: bool,
},
SavedSearchNamesLoaded(Vec<String>),
WorkspaceSwitched(String),
SaveSearchConfirmed {
name: String,
query: String,
source: SaveSource,
},
SavedSearchPersisted {
name: String,
query: String,
source: SaveSource,
},
SavedSearchSaveFailed {
name: String,
},
SavedSearchSelected {
query: String,
name: String,
},
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
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.
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.
UpdateAvailable(UpdateStatus)
A newer release was found by the background update check. Stored on
App and surfaced as a footer indicator on the editor screen.
ApplyUpdate
User chose “Update now” in the update dialog → run the self-update.
DismissUpdate(String)
User skipped a version in the update dialog → persist the dismissal and clear the indicator. Carries the version being skipped.
ShowUpdateDialog
Open the update dialog for the currently-known update (manual check).
UpdateApplied
Self-update finished installing → clear the pending notice (restart still required to run the new binary).
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.
ShowFileOpsMenu(VaultPath)
Request to show the file-operations menu (delete / rename / move).
ShowDeleteDialog(VaultPath)
Request to show the delete confirmation dialog for the given entry.
ShowRenameDialog(VaultPath)
Request to show the rename dialog for the given entry.
ShowMoveDialog(VaultPath)
Request to show the move dialog for the given entry.
EntryDeleted(VaultPath)
Confirmation that the given entry was successfully deleted.
EntryRenamed
Confirmation that an entry was successfully renamed.
EntryMoved
Confirmation that an entry was successfully moved.
EntryCreated(VaultPath)
Notification that a note was just created at this path. The current
screen refreshes its sidebar if it is browsing the note’s directory.
Opening the note is a separate concern (the creator emits OpenPath).
DialogError(String)
A dialog operation failed; carries a human-readable error message.
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.
RenameValidation
Rename dialog: name availability check result.
MoveDirectoriesLoaded(Vec<VaultPath>)
Move dialog: directory list has loaded.
MoveFilterResults(Vec<VaultPath>)
Move dialog: fuzzy filter results are ready.
MoveDestValidation
Move dialog: destination existence check result.
SavedSearchNamesLoaded(Vec<String>)
Save-search dialog: existing saved-search names have loaded (drives the update/overwrite/save-new hint).
WorkspaceSwitched(String)
User switched to a different workspace. Carries the workspace name. Handled by main.rs to rebuild the vault and navigate to StartScreen.
SaveSearchConfirmed
Persist a saved search (emitted by the save-search dialog on submit).
source is the surface the query was sourced from, decided when the
dialog opened — it drives whether the panel breadcrumb re-pins.
SavedSearchPersisted
A saved search was written to disk (success path of
SaveSearchConfirmed). The editor re-pins the panel breadcrumb here —
only once the write actually succeeded.
SavedSearchSaveFailed
The background saved-search write failed; surface it to the user.
SavedSearchSelected
A saved search was chosen in the Saved Searches modal.
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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