ailloli_ui_editor/
config.rs

1//! Generic editor wrapping and visual configuration.
2
3use crate::style::EditorStyle;
4
5/// Line wrapping strategy for editor layout.
6///
7/// # Examples
8///
9/// ```
10/// use ailloli_ui_editor::EditorWrapMode;
11/// assert_eq!(EditorWrapMode::default(), EditorWrapMode::SoftWrap);
12/// ```
13#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
14pub enum EditorWrapMode {
15    /// Text editor mode: soft-wrap by word, with emergency breaks for long runs.
16    #[default]
17    SoftWrap,
18    /// Code editor mode: no visual wrap; horizontal scrolling clips overflowing text.
19    NoWrap,
20}
21
22/// Engine configuration shared by layout, input, and paint model generation.
23///
24/// # Examples
25///
26/// ```
27/// use ailloli_ui_editor::{EditorConfig, EditorWrapMode};
28/// let config = EditorConfig::default();
29/// assert_eq!(config.wrap_mode, EditorWrapMode::SoftWrap);
30/// assert_eq!(config.style.line_height, 18.0);
31/// ```
32#[derive(Debug, Clone, Copy, PartialEq, Default)]
33pub struct EditorConfig {
34    /// Logical-pixel metrics and semantic colors.
35    pub style: EditorStyle,
36    /// Soft-wrap or horizontal-scroll layout policy.
37    pub wrap_mode: EditorWrapMode,
38}