Skip to main content

Module boundary_app_effect

Module boundary_app_effect 

Source
Expand description

WitBoundary mirror for AppEffect (plugin-host.md §4.4, PH7.3b2).

AppEffect is the App-side typed effect carried by Effect::AppAction — chord-bound work with no grammar concept attached (<Esc> exits Visual, <C-w>v splits a pane, o opens a line below). Mirroring it unblocks the effect::app-action arm (which crossed as a typed error at PH7.3b1b).

Every arm is pure, flat, non-recursive data and reuses the shared payload mirrors (ModalState/VisualKind/SearchDirection/Register, PH7.3b1a) plus four app-effect-only helper enums (ViewportPos/ScrollPos/ PaneDirection/HScroll). One arm is absent by design: AppEffect::NarrowTrigger { range: Option<Range> } carries the recursive ex-command Range (RangeBound::Offset { base: Box<RangeBound> }) + a plugin RangeId, which WIT cannot express — it crosses as a typed WitBoundary error until a range mirror lands (the Effect::Global precedent). NarrowLines (a pre-resolved line span) crosses fine.