alma 0.1.0

A Bevy-native modal text editor with Vim-style navigation.
Documentation
//! Vim modal state component snapshots.

use crate::vim::{
    LeaderState, NormalState, VimCommandState, VimMode, VimSearchState, VimSelectionState,
    VimStatusLine, VisualState,
};
use bevy::prelude::Component;

/// Entity-scoped Vim modal and prompt state for an editor view.
#[derive(Clone, Component, Debug, Default)]
pub struct VimModalState {
    /// Current normal/visual mode.
    pub mode: VimMode,
    /// Normal-mode grammar and command-application state.
    pub normal: NormalState,
    /// Visual-mode grammar and command-application state.
    pub visual: VisualState,
    /// Active visual selection anchor.
    pub selection: VimSelectionState,
    /// Active or previous search state.
    pub search: VimSearchState,
    /// Active command-line state.
    pub command: VimCommandState,
    /// Pending or visible leader-key state.
    pub leader: LeaderState,
    /// Bottom status-line message.
    pub status: VimStatusLine,
}