alma 0.1.0

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

mod effects;
mod input;

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

pub use input::{VimInputState, emit_editor_input_events, handle_vim_input};

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

impl Plugin for VimFeaturePlugin {
    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));
    }
}