Skip to main content

CommandRegistryHandle

Type Alias CommandRegistryHandle 

Source
pub type CommandRegistryHandle = Arc<ArcSwap<CommandRegistry>>;
Expand description

The shared, hot-swappable command registry: the typed handle for ServiceRegistry registration + lookup (M.10.3, 2026-06-03). Mode crates pull it via ctx.service::<CommandRegistryHandle>() to look up CommandIds by action name (id_by_name("action:...")) at on_activate time. Same shape as lattice_mode::ActionHandlerRegistryHandle per feedback_servicesregistry_arc_typeid.

PL8.B / B3b (2026-07-15): held behind ArcSwap (was a bare Arc<CommandRegistry>) so the plugin loader can RCU-register a runtime grammar contribution (register_plugin_motion / _operator / _ex_command / …) into a cloned registry and store it, while the dispatch path — the per-buffer actor and every host-side ex-command / completion read — snapshots it wait-free via .load() (.load_full() where an owned Arc snapshot must outlive a &mut self borrow). Mirrors lattice_mode::ModeRegistryHandle / lattice_picker::PickerRegistryHandle (decision B: ArcSwap all plugin-contributed registries).

Aliased Type§

pub struct CommandRegistryHandle { /* private fields */ }