pub struct ZleManager {
pub keymaps: HashMap<KeymapName, Keymap>,
pub user_widgets: HashMap<String, String>,
pub active_keymap: KeymapName,
}Expand description
Global ZLE manager (accessed via zle() function)
Fields§
§keymaps: HashMap<KeymapName, Keymap>Keymaps
user_widgets: HashMap<String, String>User-defined widgets
active_keymap: KeymapNameCurrently-active keymap — written by bindkey -A NAME main
and zle -K NAME. Distinct from per-line vi-mode state on
ZleState. Default Emacs to match zsh’s startup state.
Implementations§
Source§impl ZleManager
impl ZleManager
pub fn new() -> ZleManager
Sourcepub fn define_widget(&mut self, name: &str, func: &str)
pub fn define_widget(&mut self, name: &str, func: &str)
Define a user widget
Sourcepub fn delete_widget(&mut self, name: &str) -> bool
pub fn delete_widget(&mut self, name: &str) -> bool
Delete a user widget — port of zle -D from zsh/Src/Zle/zle_main.c bin_zle case ‘D’. Returns true iff a user widget by that name existed; built-in widgets cannot be deleted.
Sourcepub fn alias_widget(&mut self, new_name: &str, target: &str) -> bool
pub fn alias_widget(&mut self, new_name: &str, target: &str) -> bool
Alias one widget to another — port of zle -A from zsh/Src/Zle/zle_main.c bin_zle case ‘A’. The new name dispatches to the existing target’s function. Returns true iff the target resolves (built-in or already-user-defined).
Sourcepub fn select_keymap(&mut self, name: &str) -> bool
pub fn select_keymap(&mut self, name: &str) -> bool
Select the active keymap by name (zle -K NAME). Direct port of zle_main.c bin_zle case ‘K’. Returns true iff the named keymap exists; canonical zsh names: main / emacs / viins / vicmd / isearch / command / menuselect (case-sensitive). Unknown name leaves the active keymap unchanged.
Sourcepub fn get_widget<'a>(&'a self, name: &'a str) -> Option<&'a str>
pub fn get_widget<'a>(&'a self, name: &'a str) -> Option<&'a str>
Get a widget by name (returns the function name if user-defined)
Sourcepub fn bind_key(&mut self, keymap: KeymapName, key: &str, widget: &str)
pub fn bind_key(&mut self, keymap: KeymapName, key: &str, widget: &str)
Bind a key in a keymap
Sourcepub fn unbind_key(&mut self, keymap: KeymapName, key: &str)
pub fn unbind_key(&mut self, keymap: KeymapName, key: &str)
Unbind a key from a keymap
Sourcepub fn execute_widget(&mut self, name: &str, _key: Option<char>) -> WidgetResult
pub fn execute_widget(&mut self, name: &str, _key: Option<char>) -> WidgetResult
Execute a widget (stub - actual execution handled elsewhere)
Sourcepub fn list_widgets(&self) -> Vec<&str>
pub fn list_widgets(&self) -> Vec<&str>
List all widget names
Trait Implementations§
Source§impl Default for ZleManager
impl Default for ZleManager
Source§fn default() -> ZleManager
fn default() -> ZleManager
Auto Trait Implementations§
impl Freeze for ZleManager
impl RefUnwindSafe for ZleManager
impl Send for ZleManager
impl Sync for ZleManager
impl Unpin for ZleManager
impl UnsafeUnpin for ZleManager
impl UnwindSafe for ZleManager
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
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<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.Source§impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
Source§fn to_owned_obj(&self, data: FontData<'_>) -> U
fn to_owned_obj(&self, data: FontData<'_>) -> U
T, using the provided data to resolve any offsets.