alma 0.1.1

A Bevy-native modal text editor with Vim-style navigation.
Documentation
//! Bevy adapter for Vim editor input and modal intent.

mod dispatch;
mod effects;
mod insert;
mod keyboard;
mod prompts;
mod status;
mod system;

use crate::ecs::schedules::EditorSet;
use bevy::prelude::{App, IntoScheduleConfigs, Plugin, Update};

pub use keyboard::{VimInputState, emit_editor_input_events};
pub use system::handle_vim_input;

/// Bevy plugin for Vim-style input handling.
#[derive(Clone, Copy, Debug, Default)]
pub struct BevyVimInputPlugin;

impl Plugin for BevyVimInputPlugin {
    fn build(&self, app: &mut App) {
        let _app = app
            .add_systems(Update, emit_editor_input_events.in_set(EditorSet::Input))
            .add_systems(Update, handle_vim_input.in_set(EditorSet::Intent));
    }
}