alma 0.1.0

A Bevy-native modal text editor with Vim-style navigation.
Documentation
//! Editor UI chrome, status, and styling.

mod chrome;
mod status;
pub mod style;

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

pub use chrome::{ChromeStatusLine, spawn_chrome, sync_chrome_status_line};

/// Height of the bottom Vim status line.
pub const STATUS_BAR_HEIGHT: f32 = 28.0;

/// Feature plugin for editor UI chrome.
#[derive(Clone, Copy, Debug, Default)]
pub struct UiFeaturePlugin;

impl Plugin for UiFeaturePlugin {
    fn build(&self, app: &mut App) {
        let _app = app
            .add_systems(Startup, spawn_chrome.in_set(EditorStartupSet::Chrome))
            .add_systems(Update, sync_chrome_status_line.in_set(EditorSet::Render));
    }
}